jvmchat | Unsorted

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

5858

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

Subscribe to a channel

pro.jvm

В комментариях первый чел - из команды Loom

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

pro.jvm

тогда я наверное не понял. А что именно еще можно было бы оптимизировать в стеках?

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

pro.jvm

Посмотрел(пролистал), честно говоря для оптимизации размера стэка особо ничего не увидел
в основном касается оптимизации копирования фреймов virtual thread continuation <-> platform thread stack
по оптимизации размера увидел планируемую в будущем компрессию фреймов, все (

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

pro.jvm

Смотря сколько подов)

Можно и до 10/50 понизить

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

pro.jvm

Даже с балансером соединений

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

pro.jvm

Что ты имеешь в виду?

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

pro.jvm

ну если говорить про внешнюю систему, то там вообще ещё надо помнить про poison pill

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

pro.jvm

Чем дольше, тем выгоднее решение на виртуальных

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

pro.jvm

И тут уже зависит от того, насколько долго внешняя система будет отвечать

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

pro.jvm

ну если получится доказать про память, то ок
но про параллельность /конкурентность все равно же в jdbc cp упрется

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

pro.jvm

Я уверен, что решение на виртуальных потоках:

Позволит обработать каждое сообщение в батче параллельно
Будет стоить меньше по памяти, чем платформенный тред (на платформенных мы можем вылетать по OOM при ограниченных ресурсах)
Будет быстрее

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

pro.jvm

Я уже два раза писал, почему нет (:

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

pro.jvm

Да норм идея, паттерн мульти трэдед консьюмер, где требуется обработка батча параллельно + тут поможет структурное конкарренси

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

pro.jvm

https://www.youtube.com/watch?v=6nRS6UiN7X0 - тут показывалась, как они оптимизации делают для этого

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

pro.jvm

Насколько понимаю, он и так в обычной куче лежит, его никуда двигать не надо, разве что регистрф сбрасывать (как и в нативных). Хороший вопрос - это как он расширяется, копированием (= медленно, но только до самой глубокой цепочки вызова) или ссылкой на следующую страницу (= не так медленно, но постоянно, потеря локалити, лишние инструкции)

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

pro.jvm

https://www.reddit.com/r/java/s/XWu7HnGXiQ

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

pro.jvm

А как можно оптимизировать стек под виртуальный тред онли?

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

pro.jvm

вспомнил кейс smallrye messaging (подотносительно Quarkus)
тайм-аут по умолчанию 60 сек воспринимается как сообщение, которое нельзя обработать и общение с Kafka и данным консьюмером блокируется.
я скорее к тому, что там действительно уже все сильно зависит от внешней системы, к подтверждению твоих слов как конкретный кейс

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

pro.jvm

У меня подов может быть быть десятки и сотни…

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

pro.jvm

Это много для условного постгреса

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

pro.jvm

На под 20-40 соединений в jdbc, mvc пул сотка

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

pro.jvm

И в реальных системах никто пулы на 1к потоков не делает, а значит там будет базовый пул потоков + очередь, и эта очередь будет забиваться

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

pro.jvm

/channel/jvmchat/623423

Смотрим на res, дальше проецируем, что будет, когда в стеке окажется реальный код, а не два фрейма.

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

pro.jvm

Ага, только платформенные блокируются

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

pro.jvm

есть ситуации, но безотносительно кафки, конечно

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

pro.jvm

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

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

pro.jvm

главная идея использования virtual threads в kafka consumer это именно уход от проблемы context switching.
Про память ещё доказать надо :)

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

pro.jvm

Там предположение, что код будет делать fan-out для параллельных тасок, и у них будет минимальный стек.

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

pro.jvm

Я к тому что да, он в куче. Но он там есть.

Просто складывается ощущение что стэка нет. Локальных переменных нет. И т д

Вот бесплатные треды.

В jep написано, что стэк не будет глубоким. Но непонятно почему.

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

pro.jvm

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

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