горячие потоки и хоть как-то улучшить производительность.
В моем случае потоки из http-event-pool всегда "убегают", в сторону бизнес-логики, когда я просто обрабатываю результаты от webClient.
В такой ситуаций в любом профайлере я вижу горячие eventPoolы и все.
Чтобы решить проблему - должен ли я всегда решедулить результат от webClient'а на свой собственный планировщик бизнес-логики?
Как идея это вообще ок? Или вы живете как-то по-другому
Спасибо 😊
Ps. subscribeOn мне не помогал, как я понимаю из-за того что у эвент пула свой поток
Хм, а что вы хотите профилировать? Если я правильно понимаю, то проблема в следующем: вы видите в основном свою бизнес-логику, а хотите видеть тормоза на удалённых вызовов?
При профилировании я вижу только треды от евентлупов. В случае если есть затупы бизнес логики или какие либо горячие циклы я не могу отделить где они
Попробуй https://www.jetbrains.com/help/idea/async-profiler.html Должно из коробки работать и показать именно работающие треды
А что значит работающие треды, ведь тут другая ситуация. Треды евентпула утекают в бизнес логику. Т.е. бизнес код выполняется внутри reactor-http-nio-... треде
в intellij profiler можно будет отфильтровать функции из фреймворка и посмотреть отдельно на вашу бизнес логику открой вкладку method list и там можно будет поискать "entry point" бизнес логики потом внизу посмотреть backtraces (откуда вызвали) и calltree (как работала сама логика) при этом справа можно выбрать или "all threads" -- тогда информация будет по всему приложению, или конкретный тред, тогда профиль будет только по нему UPD: плюс можешь попробовать https://www.jetbrains.com/help/idea/read-the-profiling-report.html#filter-call-tree, чтобы скрыть спринг вызовы из основного call tree. не уверен что так станет понятнее, но попробовать стоит
что значит треды утекают в бизнес-логику?
Получается хожу сквозь webClient.результат().map(ответ->бизнес логика) В такой истории бизнес логика вы выполнится на треде евентпула
когда это стало проблемой, если код неблокирующий весь?
Для понимания где больше всего потребляется cpu. Плюс кажется так себе что по тредам нельзя понять что он делает. Куда воевать разработчику если тред евентпула использует 100%
Так бизнес-логика и должна на них исполняться, если не указано обратное, нет? И в чем проблема с потоками из ивент пула?
у вас 1 тред менеджит кучу активностей
Обсуждают сегодня