TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #8668 296
Почему нагрузочный тест в одной JVM может скрыть задержки GC

Если генератор запросов работает в той же JVM, что и тестируемый сервис, пауза GC останавливает оба компонента. Пока сервис не отвечает, генератор тоже не создаёт часть запросов. В измерения не попадает нагрузка, которая пришла бы от независимого клиента.

Исследователи сравнили режимы SPECjbb2015 на OpenJDK 27: с генератором внутри JVM сервиса и в отдельном процессе. Для сборщиков с заметными паузами значения p99 существенно различались; у ZGC такой разницы не наблюдали.

Даже учёт запланированного времени отправки не восстанавливает запросы, которые генератор не смог создать. При проверке хвоста задержек полезно вынести его в отдельную JVM и сопоставить времена запросов с логами GC.

Методика и экспериментальные результаты
Jonas Norlinder The Limitations of Running a Workload Generator In the Same JVM as the System-Under-Test If you care about tail latency in SPECjbb2015, Composite mode hides GC impact. We quantify the discrepancy and recommend Distributed or MultiJVM.
  • 👍 1
More from @a_cup_of_java
  1. Oct 6, 2026Почему JNI-ссылки могут привести к падению JVM JNI отдаёт нативному коду дескриптор Java-о…
  2. Oct 6, 2026Spring переводит патч-релизы на единый Patch Thursday Регулярные патч-релизы проектов Spri…
  3. Oct 2, 2026JDK 26: измеряем затраты CPU на сборку мусора JDK 26 добавляет MemoryMXBean.getTotalGcCpuT…
  4. Oct 1, 2026Как измерить экономию памяти от компактных заголовков в Java 27 В Java 27 HotSpot по умолч…
  5. Oct 1, 2026Spring Boot 4 и BoxLang: как сохранить CFML-шаблоны при миграции BoxLang Spring Boot Start…
  6. Oct 1, 2026JDK 25 и G1: почему Arrays.fill замедлился в 265 раз В JMH-тесте на Apple M4 Max заполнени…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →