我正在设置负载测试解决方案,并且在阅读 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 的文档在我粘贴在这里的小简介中所说的以外,我找不到其他解释。其他人可以帮助我理解这一点以及我如何正确有效地使用它吗?