TGViewer
BASCODE BASCODE @bascodech · 140 subscribers
Post #125 186
Миллион горутин уместился в 2.6 ГБ.

Еще вчера дописал статью, где это меряется.

Первая часть серии про то, из чего физически сделан оператор go f(). Та самая, из которой сюда уезжали выкинутые куски: select с мьютексом, потолки потоков, переезд стека.

Зашел с вопроса, который на собеседованиях задают все, а понимают единицы: почему поток дорогой, а горутина нет. Все замеры свои, на одной машине (i9-14900KF, Linux), рядом тридцать распакованных релизов Go для сверки фактов.

Пара цифр, которых в канале еще не было.
- Миллион горутин: 2.6 ГБ, по 2049 байт стека и 601 байту кучи на штуку.
- Переключение: 106 нс у горутины против 1360 нс у потока, причем мерил при GOMAXPROCS=1. Дешевизна не из параллельности, ядро в переключении горутины не участвует вообще.

Потолок, на котором недавно умер мой тест, в статье дожат до конца: ядро было готово отдать полмиллиона, обрубил systemd.

Вторая часть через неделю: переезжающий стек и вытеснение сигналом ОС. Статья в целом готова, жду релиза 1.27, финальных замеров и вычитки.

Статья: https://habr.com/ru/articles/1070050/
Код всех замеров: https://github.com/dsbasko/sandbox-gorutines
  • 🔥 3
  • ❤ 1
  • 👏 1
More from @bascodech
  1. Sep 18, 2026Мысли про дебаггинг и IDE в 2026 Вот интересная история... Расс Кокс выложил пять сессий,…
  2. Sep 14, 2026Кодить без AI сейчас как заниматься айкидо. Красиво и глубоко и десять лет до черного пояс…
  3. Sep 7, 2026Выложил свой statusline для claude code в публичный репозиторий. Лимитов у подписки три: п…
  4. Sep 5, 2026Рубрика "лысая мудрость" Как я больше года храбро готовился, но так ничего и не сделал. Вт…
  5. Sep 2, 2026Распаковал 30 релизов Go подряд, 2.9 ГБ исходников. Ради одного вопроса. Вопрос такой: поч…
  6. Aug 29, 2026Сегодня у кого-то будет распаковка :-)
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →