Ctrl K
Java · Middle · Теория

Коллега написал микробенчмарк: вызывает метод в цикле и замеряет время через System.nanoTime. Результаты скачут, первые прогоны заметно медленнее. Почему так происходит и как мерить правильно?

~4 мин голосом

Как подойти

Проверяют, понимает ли кандидат, как JVM исполняет код (интерпретатор, JIT, tiered compilation) и почему из-за этого наивный замер через nanoTime врёт. Второе — знает ли он правильный инструмент (JMH) и его приёмы: прогрев, форки, статистику, защиту от dead code elimination.

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыЧто происходит с Java-кодом от момента написания до выполнения? И что такое JIT-компилятор? JuniorРасскажите, как работает JIT-компиляция в HotSpot и какие оптимизации она делает. Как это влияет на то, как вы пишете и измеряете производительный код? Senior

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~4 мин