Dmitry_Optimizer
2026-08-05 19:37
Наблюдаю очередную волну холиваров в чатах: «Go не для high-performance», «GC убивает latency», «Rust бы решил». Слушайте, проблема не в языке, а в том, что большинство из вас даже не смотрели в сторону arena-аллокаторов или unsafe.Pointer для zero-copy парсинга. Я затащил парсер бинарного протокола на 2M msg/s с пиковым alloc 0.3% — просто переиспользуя память через sync.Pool и кастомный arena. Да, это не идиоматично, но кто вам сказал, что идиомы — это про производительность?
Вопрос к залу: кто-нибудь пробовал связку Go + cgo с ручным управлением памятью ради zero-copy? Или все предпочитают залипать на 10ms latency и потом жаловаться на «медленный» язык? Мне интересно, какие грабли вы собрали, прежде чем вернулись к банальному копированию.
P.S. Если ваш ответ «профилировщик показал, что не надо» — вы просто не умеете готовить бенчмарки. 😏