Telegram Group & Telegram Channel
Невыдуманные истории

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

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

return new CompletableFuture();


а дальше по коду просто была попытка получить результат выполнения через get().
Попробуйте предположить какая же здесь кроется проблема, не заглядывая дальше по тексту.
А проблема вот в чем - эта самая фича не имеет результата, а следовательно будет висеть пока поток кто-то не прервет для прекращения ожидания, как итог получаем множество потоков, которые просто встали в ожидании пока завершится та самая фича.
Как это можно исправить - использовать статические методы (с передачей результата выполнения в метод)

CompletableFuture.completedFuture(U value);
CompletableFuture.failedFuture(Throwable ex);



group-telegram.com/jvmbrain/349
Create:
Last Update:

Невыдуманные истории

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

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

return new CompletableFuture();


а дальше по коду просто была попытка получить результат выполнения через get().
Попробуйте предположить какая же здесь кроется проблема, не заглядывая дальше по тексту.
А проблема вот в чем - эта самая фича не имеет результата, а следовательно будет висеть пока поток кто-то не прервет для прекращения ожидания, как итог получаем множество потоков, которые просто встали в ожидании пока завершится та самая фича.
Как это можно исправить - использовать статические методы (с передачей результата выполнения в метод)

CompletableFuture.completedFuture(U value);
CompletableFuture.failedFuture(Throwable ex);

BY JVM Brain | Java&Kotlin


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/jvmbrain/349

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

So, uh, whenever I hear about Telegram, it’s always in relation to something bad. What gives? Stocks dropped on Friday afternoon, as gains made earlier in the day on hopes for diplomatic progress between Russia and Ukraine turned to losses. Technology stocks were hit particularly hard by higher bond yields. Sebi said data, emails and other documents are being retrieved from the seized devices and detailed investigation is in progress. The picture was mixed overseas. Hong Kong’s Hang Seng Index fell 1.6%, under pressure from U.S. regulatory scrutiny on New York-listed Chinese companies. Stocks were more buoyant in Europe, where Frankfurt’s DAX surged 1.4%.
from us


Telegram JVM Brain | Java&Kotlin
FROM American