Если вы хотите три миллиона коннектов, то это фреймворк уже зависит от вашей задачи, а не наоборот
Читать полностью…У тебя хип 1гб. Если ты взял и создал виртуальный тред сразу с 1мб стека, то в хипе поинтер скакнет на этот один мегабайт, даже если там страницы никто не трогал. Этот мегабайт уже реально зарезервирован, в отличие от классической аллокации, и ты выедаешь весь хип на раз. Если же ты создаешь каждый виртуальный тред с 4кб стека и динамически расширяешь по необходимости до этого мегабайта, то ты действительно можешь спамить этими тредами как не в себя.
Читать полностью…вопрос был в том что используя virtual треды мы выигрываем в памяти, как оказалось не выигрываем, при этому чтобы не потерять нужно еще их правильно(ожидаемо) использовать
Читать полностью…и еще на каждого клиента может приходиться несколько вирт тредов для отдельных тасок каких нибудь, чому нет
Читать полностью…Ну хип тоже virtual memory как бы
История скорее всего про аллокацию при создании. Только зачем их обязательно создавать-то, а не брать из пула?
ну это же от сервера зависит.
Quarkus так собственно и делает.
принимает запросы на eventloop vert.x, а дальше, в зависимости от сигнатуры создаёт новый virtual thread или исполняет неблокирующий вызов дальше
если я сделаю void test() { test(); } то у меня бесконечно расширяться стек будет? как в питоне начиная с 3.10? если отключить аппер баунд размера стека или лимит рекурсии
Читать полностью…Дак они существуют внутри хипа, там без вариантов. Если не создавать по необходимости, оно весь хип засрет, в отличие от классической аллокации
Читать полностью…Ну и из дискуссии выше:
Вот точная цитата ihickey про стек, который не уменьшается обратно:
“However, even if thread creating were cheap then things may be fine, but it’s not (due to reasons beyond just memory) and so if platform threads are shared once one task touches a lot of stack, it will never shrink (and it will be shared).”
🥱🥱🥱
Так они не нужны, эти три миллиона
Нужен ровно один хендлер per core, который вообще минимум дел имеет с любым шедулингом.