История изменений
Исправление
vertexua,
(текущая версия)
:
Переключения может и проблема, но есть еще более серьезная проблема. Минимальный размер стека в JVM в Linux x86_64 - 128 КБ. Даже тысяча таких потоков - уже 128 MB минимум, но это минимальные стеки со всякой пургой, а надо еще считать память переменных и обьектов на которые они ссылаются. А теперь подумай о 10k problem, это уже больше 1ГБ по сути ни за что, только за поддержку стеков. Зеленые потоки, goрутины, лапша из колбеков в стиле JavaScript - все это будет тратить память в основном на полезные вещи, а в поточной модели ты будешь платить за то, что тебе не надо. А в веб-приложении будет висеть в кажтом стеке еще отдельный парсер и все это счастье будет гоняться сборщиком мусора между зонами памяти. В эпоху микросервисов количество памяти начинает играть роль, как с точки зрения уменьшения вот таких глупых расходов на один JVM, ведь будет запущено много JVM. Так и с точки зрения попытки держать размеры контейнеров маленькими чтобы их было удобно паковать в большом количестве в физические машины.
Исправление
vertexua,
:
Переключения может и проблема, но есть еще более серьезная проблема. Минимальный размер стека в JVM в Linux x86_64 - 128 КБ. Даже тысяча таких потоков - уже 128 MB минимум, но это минимальные стеки со всякой пургой, а надо еще считать память переменных и обьектов на которые они ссылаются. А теперь подумай о 10k problem, это уже больше 1ГБ по сути ни за что, только за поддержку стеков. Зеленые потоки, goрутины, лапша из колбеков в стиле JavaScript - все это будет тратить память в основном на полезные вещи, а в поточной модели ты будешь платить за то, что тебе не надо. А в веб-приложении будет висеть в кажтом стеке еще отдельный парсер и все это счастье будет гоняться сборщиком мусора между зонами памяти. В эпоху микросервисов количество памяти начинает играть роль, как с точки зрения уменьшения вот таких глупых расходов на один JVM, ведь будет запущено много JVM. Так и с точки зрения попытки держать размеры контейнеров маленькими чтобы их было удобне паковать в большом количестве в физические машины.
Исходная версия
vertexua,
:
Переключения может и проблема, но есть еще более серьезная проблема. Минимальный размер стека в JVM в Linux x86_64 - 128 КБ. Даже тысяча таких потоков - уже 128 MB минимум, но это минимальные стеки со всякой пургой, а надо еще считать память переменных и обьектов на которые они ссылаются. А теперь подумай о 10k problem, это уже больше 1ГБ по сути ни за что, только за поддержку стеков. Зеленые потоки, goрутины, лапша из колбеков в стиле JavaScript - все это будет тратить память в основном на полезные вещи, а в поточной модели ты будешь платить за то, что тебе не надо. А в веб-приложении будет висеть в кажтом стеке еще отдельный парсер и все это счастье будет гоняться сборщиком мусора между зонами памяти.