java中有没有一个命令可以测量执行时间?
java中有没有一个命令可以测量执行时间?
内容。
System.out.println(execution.time);
类似于代码末尾的
Is there a command in java to measure the execution time ?
Something like
System.out.println(execution.time);
in the end of the code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
这是一个关于如何做到这一点的完整且稍作修改的示例:
Here is a complete and little modified example on how you could do that:
您可以使用 自行轻松实现
System.currentTimeMillis()
:或者(特别是如果您的任务运行时间不长),您可能需要使用
System.nanoTime()
。请注意,与currentTimeMillis()
的工作方式相反,nanoTime()
返回的值不相对于某个指定时间。这意味着nanoTime()
只能用于测量时间跨度,而不能用于识别某个特定的时间点。You can easily implement that yourself using
System.currentTimeMillis()
:Alternatively (especially if your task doesn't run as long), you might want to use
System.nanoTime()
. Note that contrary to howcurrentTimeMillis()
works, the value returned bynanoTime()
is not relative to some specified time. This means thatnanoTime()
can only be used to measure time spans and can't be used to identify some specifiy point in time.您可以运行探查器,或使用两次调用 System.currentTimeMillis() 的差异,
如下所示:
You could run a profiler, or use the difference of two calls to
System.currentTimeMillis()
Like this :
最简单的方法是在代码执行之前和之后使用 System.currentTimeMillis() 。 Joda-Time 有更复杂的版本:http://joda-time.sourceforge.net/
Easiest way is to use System.currentTimeMillis() before and after the code executing. Joda-Time has more sophisticated versions of that: http://joda-time.sourceforge.net/
如果您想了解有关测量内容的更多详细信息,我强烈建议您使用 JMX 尤其是 ThreadMXBean : http://download.oracle.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html
代码示例:
带有代码的相当完整的解释样品可在此处获取:
http://nadeausoftware.com/articles/2008/03/java_tip_how_get_cpu_and_user_time_benchmarking
If you want to have more details on what you measure, I strongly suggest you use JMX especially ThreadMXBean : http://download.oracle.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html
Code sample :
A quite complete explanation with code samples is available here :
http://nadeausoftware.com/articles/2008/03/java_tip_how_get_cpu_and_user_time_benchmarking
使用 ThreadMXBean 进行更详细的计时:
Use the ThreadMXBean for more detailed timing:
Apache Commons 库有 StopWatch类,Spring还有 StopWatch。
Apache Commons library has StopWatch class and Spring also has StopWatch.
您可以设计一个控制抽象
时间
,它将要执行的操作作为参数,并测量和打印执行该操作所需的时间。代码:
You can design a control abstraction
time
that takes as parameter an action to be performed and measures and prints the time required to execute it.Code:
我喜欢 RoflcoptrException 的类示例。
我将其重写为要点:
I liked the class example of RoflcoptrException.
I rewrote it to its essentials: