使用StopWatch查看程序执行时间(普通篇)
2017-10-29 00:00
120 查看
摘要: stopwatch 查看执行时间
在平时的开发调试工作中,时常会遇到程序执行效率非常慢,通过一般的经验只能判断出部分逻辑有问题,但判断并不直观且效率较低。这时我们就会用一些比较直观的方法来检查,比如看看某一段程序执行的时间,从而来判断是否比较耗时。比较常用的办法就是在程序开始时使用System.currentTimeMillis()记个时,然后再结束时计个时,再进行两个时间取差值就可以看出来了。
但这种方法较麻烦,且如果同时要观察多个代码执行程序,要写较多代码。故现在可以直接使用 org.springframework.util.StopWatch 类来帮我们统计时间。
它可以方便统计程序的每一段的执行时间,最后一起输出并显示每一个的时间占比情况。
输出结果:
StopWatch 'demo1': running time (millis) = 2972
-----------------------------------------
ms % Task name
-----------------------------------------
00108 004% step1
00861 029% step2
02003 067% step3
从结果看出总执行时间为2972ms,将每一步的进行时间和占比,这样我们就很容易可以排查哪一个程序段执行的效率了,用起来特别方便。
虽然现在的方法已经很强大了,也很容易使用,但也要写好多代码并对被观察的代码段入侵太大,观察完后也还要一行一行删除代码,下一篇文章将介绍stopwatch的注解式用法,观察代码更少,敬请期待。
在平时的开发调试工作中,时常会遇到程序执行效率非常慢,通过一般的经验只能判断出部分逻辑有问题,但判断并不直观且效率较低。这时我们就会用一些比较直观的方法来检查,比如看看某一段程序执行的时间,从而来判断是否比较耗时。比较常用的办法就是在程序开始时使用System.currentTimeMillis()记个时,然后再结束时计个时,再进行两个时间取差值就可以看出来了。
long stime =System.currentTimeMillis(); // ... 程序代码 long etime =System.currentTimeMillis(); System.out.println("执行时间:"+(etime-stime));
但这种方法较麻烦,且如果同时要观察多个代码执行程序,要写较多代码。故现在可以直接使用 org.springframework.util.StopWatch 类来帮我们统计时间。
它可以方便统计程序的每一段的执行时间,最后一起输出并显示每一个的时间占比情况。
public void run() throws Exception { StopWatch stopWatch = new StopWatch("demo1"); stopWatch.start("step1"); step1(); stopWatch.stop(); stopWatch.start("step2"); step2(); stopWatch.stop(); stopWatch.start("step3"); step3(); stopWatch.stop(); System.out.println(stopWatch.prettyPrint()); } private void step1() throws InterruptedException { Thread.sleep(100L); } private void step2() throws InterruptedException { Thread.sleep(850L); } private void step3() throws InterruptedException { Thread.sleep(2000L); }
输出结果:
StopWatch 'demo1': running time (millis) = 2972
-----------------------------------------
ms % Task name
-----------------------------------------
00108 004% step1
00861 029% step2
02003 067% step3
从结果看出总执行时间为2972ms,将每一步的进行时间和占比,这样我们就很容易可以排查哪一个程序段执行的效率了,用起来特别方便。
虽然现在的方法已经很强大了,也很容易使用,但也要写好多代码并对被观察的代码段入侵太大,观察完后也还要一行一行删除代码,下一篇文章将介绍stopwatch的注解式用法,观察代码更少,敬请期待。
相关文章推荐
- 使用注解的方式实现StopWatch查看程序执行时间(高级篇)
- cygwin中使用time查看程序执行时间
- C#使用StopWatch获取程序毫秒级执行时间的方法
- 使用rdtsc获取细粒度程序动态执行时间
- 使用rdtsc获取细粒度程序动态执行时间
- 使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量
- J2EE 使用p6spy查看JAVA程序中执行的SQL,TOMCAT配置
- 查看程序运行时间,gprof使用详细介绍
- pthread_once()使用(某个时间在整个程序中仅执行一次,不确定是那个线程)
- 使用.net 的stopWatch 类来剖析你的代码执行时间
- 用Stopwatch测试程序执行性能时间
- php使用microtime(true)计算php程序代码执行消耗时间
- 统计程序执行使用时间
- pthread_once()使用(某个时间在整个程序中仅执行一次,不确定是那个线程)
- Windows环境是使用C语言计算程序或算法执行时间的不同粒度实现
- 使用C语言获取程序的执行时间的方法-clock函数
- 使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量
- C# 程序执行时间查看, 效率查看
- 使用QueryPerformanceFrequency 计算程序执行时间
- 使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量