jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

Если вы хотите три миллиона коннектов, то это фреймворк уже зависит от вашей задачи, а не наоборот

Читать полностью…

pro.jvm

У тебя хип 1гб. Если ты взял и создал виртуальный тред сразу с 1мб стека, то в хипе поинтер скакнет на этот один мегабайт, даже если там страницы никто не трогал. Этот мегабайт уже реально зарезервирован, в отличие от классической аллокации, и ты выедаешь весь хип на раз. Если же ты создаешь каждый виртуальный тред с 4кб стека и динамически расширяешь по необходимости до этого мегабайта, то ты действительно можешь спамить этими тредами как не в себя.

Читать полностью…

pro.jvm

А так хорошо утро начиналось

Читать полностью…

pro.jvm

Ты понимаешь, как работает стек?

Читать полностью…

pro.jvm

речь же идет про стек вирт тредов, нет?

Читать полностью…

pro.jvm

Зачем его уменьшать? Чтобы потом выделять снова?

Читать полностью…

pro.jvm

да хоть миллион и несколько тредов на коннект, че не так?

Читать полностью…

pro.jvm

вопрос был в том что используя virtual треды мы выигрываем в памяти, как оказалось не выигрываем, при этому чтобы не потерять нужно еще их правильно(ожидаемо) использовать

Читать полностью…

pro.jvm

Отошлю наверное к сцилле

Читать полностью…

pro.jvm

то есть ты предлагаешь все обрабатывать в ивентлупе?

Читать полностью…

pro.jvm

и еще на каждого клиента может приходиться несколько вирт тредов для отдельных тасок каких нибудь, чому нет

Читать полностью…

pro.jvm

каждый клиент это свой вирт тред

Читать полностью…

pro.jvm

Зачем вам три миллиона тредов? Зачем?

Читать полностью…

pro.jvm

как бэ берут из пула

Читать полностью…

pro.jvm

Ну хип тоже virtual memory как бы

История скорее всего про аллокацию при создании. Только зачем их обязательно создавать-то, а не брать из пула?

Читать полностью…

pro.jvm

ну это же от сервера зависит.
Quarkus так собственно и делает.
принимает запросы на eventloop vert.x, а дальше, в зависимости от сигнатуры создаёт новый virtual thread или исполняет неблокирующий вызов дальше

Читать полностью…

pro.jvm

если я сделаю void test() { test(); } то у меня бесконечно расширяться стек будет? как в питоне начиная с 3.10? если отключить аппер баунд размера стека или лимит рекурсии

Читать полностью…

pro.jvm

Мне придется в отпуске написать бенч

Читать полностью…

pro.jvm

Дак они существуют внутри хипа, там без вариантов. Если не создавать по необходимости, оно весь хип засрет, в отличие от классической аллокации

Читать полностью…

pro.jvm

шо, в вирт тредах стек может расширеться сам?

Читать полностью…

pro.jvm

Ну и из дискуссии выше:

Вот точная цитата 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).”

🥱🥱🥱

Читать полностью…

pro.jvm

Да не вытащит на таких объемах

Читать полностью…

pro.jvm

Вам три миллиона коннектов или что?

Читать полностью…

pro.jvm

это не удобно, код будет крайне ужасен

Читать полностью…

pro.jvm

Так они не нужны, эти три миллиона
Нужен ровно один хендлер per core, который вообще минимум дел имеет с любым шедулингом.

Читать полностью…

pro.jvm

На три миллиона вы core pinning будете делать

Читать полностью…

pro.jvm

три миллиона коннектов на сервер

Читать полностью…

pro.jvm

Там в комментах пример с 3 млн Вирт тредов

Читать полностью…

pro.jvm

ну так ведь в жвм всю жизнь tlab есть

Читать полностью…

pro.jvm

А зачем их создавать и уничтожать?

Читать полностью…
Subscribe to a channel