Как стать автором
Обновить

Лезем в сорцы компилятора — как работает goscheduler (Часть I)

Время на прочтение8 мин
Количество просмотров6.8K
Всего голосов 27: ↑25 и ↓2+23
Комментарии11

Комментарии 11

Но то, что нас убило, это переключение контекста процессора. 

Нас убил недостаток физической памяти (а не виртуальной). Создание и исполнение каждого потока так или иначе требует какое-то количество физ памяти, которое ядро должно выделить. Если это, например, 100кб, то 180 000 x 100kb = 18 Gb физ памяти. Ядро ушло в свап

Там более дикое число:

По умолчанию каждый поток создаётся с мегабайтом адресного пространства.

Мегабайт - это виртуальная память. Нас же в данном случае интересует физическая.

Кстати, это хороший момент, возможно вы правы. Ноутбук был убит, либо свопом, либо контекстом, но у меня появилась другая идея, возможно получится реализовать, расскажу потом, если выйдет :)

Сижу перед своим виртуальным хвостом на неназванном провайдере. Смотрю на 700 гигов оперативки и 32 процессора. Думаю, что будет, если попробовать эту форк-бомбу. Но мысль о грядущем биллинге удручает.

Это перевод, копипаста или авторский текст? Я вижу качественный материал, но подпись "маркетолог" у автора меня смущает.

Текст авторский, а аккаунт корпоративный, подпись немного устарела. Спасибо, что указали на ошибку, всё поправили.

Хорошо бы во второй части увидеть больше про go и сравнение его реализации с тем, что есть в Java и .NET, в каждой из них есть реализация work stealing queue.

Что касается сервера и много потоков, то все не так однозначно. Поток, который ждёт IO, обрабатывается специальным образом и не тратит (тратит меньше) ресурсы CPU.

Спасибо за данные. Мы обязательно посмотрим. Вторая статья будет именно про конкретную реализацию, но можно будет сделать сравнение разных платформ.

Я очень долго думал, как правильно перевести термин Work Stealing и остановился на Захвате Работы

Обычно переводят как "заимствование", например https://mylinuxprog.blogspot.com/2015/10/go.html

Не надо самому придумывать перевод, иногда достаточно почитать работы на похожие темы.

Мне очень нравится ваш стиль изложения.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий