我们正在使用一个 Web 服务,该服务通常需要 30-40 毫秒的时间。在该 Web 服务内,我们调用 System.currentTimeMills 38 次,以计算该服务内各种方法所花费的时间。
我只是想知道从花费时间少于 40 毫秒的代码中调用此方法超过 38 次是否可行?与此方法相关的开销是多少?
最佳答案
是的,在那个时期调用它数十万次是绝对可行的。它没有大量的开销 - 但无论如何它不是你应该要求的时间测量。使用System.nanoTime()
相反,它是专门为精确测量经过的执行时间而设计的,而不是告诉当前的挂接时间。
作为开销的粗略衡量,在我的笔记本电脑上,JIT 预热后,调用 System.nanoTime()
一百万次大约需要 14 毫秒。因此,在 40 毫秒内调用它 38 次不会有太大问题(假设您的系统具有大致相同的开销;它很可能很大程度上取决于硬件和操作系统)。
关于java - System.currentTimeMillis 执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21802073/