Рубріки: Новини

«У 10 разів швидше за Kotlin і в 3 рази швидше за Go»: в AWS пояснили, чому Rust став дефолтною мовою для нових проектів

Дмитро Сімагін

Під час конференції re:Invent у Лас-Вегасі представники AWS провели окрему сесію про використання Rust всередині компанії. Виявилось, що ця мова тепер застосовується за замовчуванням для певних типів проектів, оскільки виявилося, що Rust набагато швидший, ніж Kotlin (мова JVM) або Go, частково завдяки уникненню збирання сміття, пише Devclass.

Збирання сміття – це метод, який використовується в багатьох мовах програмування для автоматичного виділення та звільнення пам’яті, але він також створює додаткові витрати, особливо помітні у великомасштабних розподілених додатках.

«Код Rust був у 10 разів швидшим, ніж наша ретельно налаштована реалізація Kotlin, незважаючи на відсутність спроб зробити його швидшим», — заявив технічний директор AWS Вернер Фогельс.

За словами Дарко Месароса, ще одного представника компанії, Rust тепер є мовою за замовчуванням для всіх проектів обробки даних в AWS. Хмарний гігант також використовує Rust для своїх мікровіртуальних машин (мікро-VMS) Bottlerocket та Firecracker.

Розробників може не здивувати, що Rust набагато продуктивніший за Kotlin, але порівняння з Go менш очевидне, оскільки Go також компілюється в нативний код. Тим не менш, як стверджують в AWS, код Go «витрачає 30% свого часу на збирання сміття». Перехід з Go на Rust призвів до того, що код став майже втричі швидшим і міг обробляти в набагато більше точок даних за секунду, ніж той самий код на Go.

Звичайно, код Go можна оптимізувати, зменшивши використання збирача сміття, використовуючи техніку, яка називається управління пам’яттю поза купою. Але проблема з цим полягає в тому, що такий код стає «непідтримуваним безладом», оскільки він не відповідає ідеї Go. Тому «ідіоматичний код Rust дає продуктивність, яку забезпечує ретельно оптимізований код Go».

Що стосується порад щодо використання Rust, то представники AWS рекомендували налаштовувати попередження clippy — clippy є лінтером Rust — щоб компіляції з попередженнями завершались з помилкою. Вони також рекомендували не використовувати функції обробки помилок unwrap() та expect() для інших цілей, окрім як для налагодження, та видалити їх у продакшн-коді. Під час використання Rust з Lambda вони запропонували використовувати емулятор Lambda для налагодження, що особливо корисно для коду, який використовує бібліотеку Tokio Networking, оскільки емулятор надає доступ до консолі Tokio, інструменту налагодження та профілювання, але сама Lambda цього не робить.

Підтримка функцій Rust у Lambda стала загальнодоступною минулого місяця, хоча вона вже деякий час працює добре. Для Rust немає середовища виконання Lambda; оскільки це нативний код, воно працює лише для ОС, зазвичай використовуючи Amazon Linux 2023.

Останні статті

Google Antigravity обурює розробників: ціни злітають, а квоти тануть

Професійна розробка на базі Google Antigravity перетворюється на розкіш через різке скорочення безкоштовних лімітів та…

12.03.2026

Китай обмежує використання агентів OpenClaw: загрожують безпеці

Китай намагається обмежити застосування автономних ШІ-агентів, які протягом останніх тижнів набули великої популярності серед користувачів.…

12.03.2026

Gemini CLI тепер має режим планування. Готуйтесь до запитань від агента

Компанія Google оголосила про запуск режима планування в своєму інструменті командного рядка Gemini CLI. У…

12.03.2026

Оптимізм IT-фахівців згасає: Glassdoor оприлюднив індекс довіри

Впевненість фахівців у стабільності власних компаній стрімко тане. Це створює нові виклики для глобального ринку…

12.03.2026

Perplexity представляє Personal Computer — «більш безпечну» альтернативу OpenClaw. Так, він теж працює на Mac mini

Компанія Perplexity запускає власного агента зі штучним інтелектом під назвою Personal Computer. Він працює на…

12.03.2026

Google запускає пробні версії мобільних ігор

У магазині додатків Google Play з'явилася нова функція Game Trials. Вона надає можливість зіграти в…

12.03.2026