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

Розробники TikTok зекономили компанії $300 000 на рік: просто переписали код Go API на Rust

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

Розробники TikTok переписали критично важливі Go API на Rust, що призвело до подвійного збільшення продуктивності та економії для компанії $300 тисяч на рік. Про це в своєму LinkedIn пише Tech Lead Amazon Анімеш Гайтонде. Автор коментує пост стажера TikTok Xiaoyun Wu, який той виклав у своєму блозі.

Довгий час платежі TikTok базувались на мові Go через її простоту, паралельність та продуктивність. Однак врешті трафік API, який стосується отримання балансу користувача та статистики, досяг 100 тисяч запитів на секунду. Завантаження процесора різко зросло, і це стало критичним вузьким місцем, яке могло б уповільнити продуктивність.

Центральний процесор став вузьким місцем через:

  • Інтенсивну серіалізацію/десериалізацію.
  • Паузи при зборі сміття в GoLang.
  • Надмірних витрат під час виконання GoLang через неефективний розподіл пам’яті.

Команда TikTok вирішила поекспериментувати з Rust, оскільки подальша оптимізація коду Go дала б мінімальні переваги. Вони переписали лише критично важливі API, пов’язані з процесором, на Rust, залишивши інші API, написані на Go, недоторканими.

Міграція на Rust призвела до таких покращень:

  • Зниження навантаження процесора на 33%.
  • На 72% менше використання пам’яті.
  • На 76% менше затримки при відповіді системи.

Ось як Rust вирішив проблеми, які були присутні в Go:

  • Нульове збирання сміття — Rust забезпечує детерміноване володіння та терміни життя для об’єктів.
  • Структури даних Copy-on-Write дозволяють уникнути непотрібних копій, зменшуючи обсяг пам’яті.
  • Абстракції з нульовою вартістю — на відміну від Golang, немає додаткових накладних витрат під час виконання остаточного скомпільованого коду, що економить 10 циклів процесора.

Команда також виконала структуровану міграцію з Go на Rust, яка включала запуск нового сервісу в тіньовому режимі та гарантію 100% коректності.

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

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

Підтримує українську та працює офлайн на смартфоні: Tencent представила аналог Google Translate

Китайська компанія Tencent виклала у відкритий доступ компактну модель перекладу Hy-MT, яка, за її твердженням,…

30.04.2026

«Портали для шахраїв»: влада США розширює заборону криптовалютних банкоматів

Губернатор Теннессі Білл Лі підписав закон, який з 1 липня 2026 року забороняє криптовалютні банкомати…

30.04.2026

Sony спростувала чутки про щомісячну перевірку ліцензій на ігри PlayStation

Компанія Sony Interactive Entertainment офіційно заперечила інформацію, яка вчора розлетілась по мережі: власникам PlayStation 4…

30.04.2026

Редактор коду Zed досяг версії 1.0: інтеграція DeepSeek V4 та масштабні виправлення

Популярний редактор коду Zed офіційно представлено в стабільній версії 1.0. Оновлення стало значним етапом розвитку…

30.04.2026

YouTube розблокував преміальну функцію «картинка в картинці» для всіх користувачів

Компанія Google офіційно оголосила про глобальне розгортання функції «картинка в картинці» (Picture-in-Picture, PiP) для всіх…

30.04.2026

Адміністрація Трампа заблокувала плани Anthropic розширити доступ до Claude Mythos

Адміністрація президента Трампа офіційно виступила проти намірів компанії Anthropic розширити коло користувачів своєї нової LLM-моделі…

30.04.2026