Я настраиваю решение для нагрузочного тестирования, и, прочитав документацию JMeter, я вижу, что вы можете установить множество свойств для планов тестирования. У меня есть тесты, которые уже работают нормально и дают результаты, графики и т. д., но когда я пытался получить более глубокое понимание JMeter и точности результатов и т. д., я наткнулся на аннотацию ниже.
Из документации JMeter я прочитал следующее:
# Whether to use System.nanoTime() - otherwise only use System.currentTimeMillis()
sampleresult.useNanoTime=true
# Use a background thread to calculate the nanoTime offset
# Set this to <= 0 to disable the background thread
sampleresult.nanoThreadSleep=5000
Теперь я понимаю, что nanotime
будет основано на фиксированном, но произвольном исходном времени, тогда как currenttimeinmillis
основано на системном времени (т. е. на настенных часах). И я знаю, что nanotime
будет более точным, поэтому я заинтересован в его использовании: я провожу нагрузочное тестирование и мне нужно, чтобы измерения времени отклика были максимально точными и точными.
Но проблема, с которой я столкнулся, заключается в том, чтобы понять, как использовать nanoThreadSleep
. Что такое нановременное смещение? Почему я хочу или не хочу, чтобы фоновый поток вычислял смещение нановремени? Что произойдет, если я включу JMeter для работы с использованием nanotime, но не использую параметр nanoThreadSleep
явно?
Я искал в StackOverflow и Google какое-то объяснение, но я не могу найти ничего, кроме того, что говорится об этом в документации JMeter в крошечной аннотации, которую я вставил сюда. Могут ли другие помочь мне понять это и как я могу использовать это правильно и эффективно?