首页 > 解决方案 > Java:运行相同代码所需的时间不同

问题描述

我有一个静态方法,它由一个嵌套循环组成,该循环遍历一个大小为 10,000 的整数数组。我调用该方法一次,并使用System.currentTimeMillis()(也用System.nanoTime())测量时间。然后我再次调用该方法并再次测量时间。我在两个电话上花费的时间不同。第二次调用通常需要更少的时间。

轻微的差异很好,但有时差异很大(运行第二次调用所用时间的 5 倍以上)。例如,第一个方法调用需要 190 毫秒,而第二个调用只需要 35 毫秒。我也尝试过在方法调用之间暂停线程,但所用时间的差异仍然存在。

我怎样才能稳定地测量方法调用所用的时间,以使重复调用所用的时间没有显着变化?

标签: javaperformancetimetime-complexity

解决方案


推荐阅读