相关疑难解决方法(0)

如何在Java中编写正确的微基准测试?

你如何在Java中编写(并运行)正确的微基准测试?

我在这里寻找代码示例和注释,说明要考虑的各种事项.

示例:基准测量应该测量时间/迭代或迭代/时间,为什么?

相关:秒表基准可以接受吗?

java benchmarking jvm jvm-hotspot microbenchmark

835
推荐指数
11
解决办法
11万
查看次数

System.currentTimeMillis() 工作错误

我需要秒表,我使用了http://www.goldb.org/stopwatchjava.html

它效果不佳,所以我尝试每 1000 毫秒写出一次值:

stopWatch.start();
HandlerScrollBar.postDelayed(TtScroll,  1000);

private Runnable TtScroll = new Runnable() {
    public void run() {
        long time = stopWatch.getElapsedTime();
        HandlerScrollBar.postDelayed(TtScroll,(long) 1000);
        Log.d(TAG, Long.toString(time));            
    }
};
Run Code Online (Sandbox Code Playgroud)

我可以在 CatLog 中看到每秒的时间值,这是结果:

在此处输入图片说明

实时时间最长为 +5ms,但在列中至少为 +3 秒!这怎么可能?它与

new Date().getTime().
Run Code Online (Sandbox Code Playgroud)

是否有一些 StopWatch 类可以按预期通过此测试?

谢谢你。

time android stopwatch

1
推荐指数
1
解决办法
1739
查看次数