我正在计算一些东西,我不能把它放在一个很长的循环中.我需要给他们时间看他们需要多长时间才能完成,但似乎计时器在java中的准确度为15-16毫秒?我怎么能绕过这个?
你尝试过使用System.nanoTime()吗?
来自Javadoc:
返回最精确的可用系统计时器的当前值,以纳秒为单位.
此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关.返回的值表示纳秒,因为某些固定但是任意时间(可能在将来,因此值可能为负).该方法提供纳秒精度,但不一定是纳秒精度.不保证值的变化频率.由于数值溢出,跨越大于约292年(2 63纳秒)的连续调用的差异将无法准确计算经过的时间.
例如,要测量某些代码执行所需的时间:
long startTime = System.nanoTime(); // ...正在测量的代码... long estimatedTime = System.nanoTime() - startTime;