Сообщение от разработчиков подтверждает: использование меньшего количества горутин в Go позволяет обрабатывать больше запросов. Новый подход к реализации пула рабочих уменьшил потребление памяти на 85% и увеличил производительность в 40 раз. Многие разработчики Go убеждены, что наращивание горутин ведет к лучшей производительности. Но ситуация изменилась, когда сервис обработки платежей не справился с нагрузкой в Черную пятницу, создав более 800 000 горутин и израсходовав 12 ГБ ОЗУ для обработки обычного объема трафика. Это стал своеобразный сигнал тревоги: «оптимизированный» сервис стал медленнее своей синхронной версии. Как показали исследования, чем больше горутин, тем меньше производительность, что подтверждается данными: каждая горутина в среднем использует 4-8 КБ ОЗУ в рабочей среде (при старте всего 2 КБ). Проблема заключается не только в потреблении памяти, но и в том, что при превышении 10 000 активных горутин время переключения контекстов начинает превышать время выполнения з
Секрет оптимизации Go: меньше горутин — больше производительности
3 апреля3 апр
2 мин