通过Profiling工具看结果:方法 运行时间testOne 0.055764testTwo 0.043821testThres 0.132451也就是说,jdk 1.5的for/each循环是最慢的。有点不相信。开头觉得是因为赋值造成的,但后来在另两个方法里面加上赋值语句,依然是for/each最慢。比较有趣的结果。从代码清晰角度,用for/each消耗多一点点时间似乎也无所谓。但是,另两种代码也不见得“不清晰”,呵呵。看着办了。
本文只作很简要介绍,可视作备忘参考。TPTP是eclipse官方的profiling插件,初步使用下感觉功能强大。下载安装: 在http://www.eclipse.org/tptp/下载,我选择All-Runtime,然后像其它插件一样解压到eclipse的目录,然后允许eclipse -clean来刷新一把。使用: 常用的profiling简单来讲就对程序运行进行记录,然后从数据中分析哪些方法运行时间长,哪些对象吃内存多,哪些类的实例多等等。一个比较好的使用入门sample在这里: http://www.eclipse.org/tptp/home/documents/tutorials/profilingtool/profilingexample_32.html 我就不罗嗦了。值得多讲的是Remote Profiling,就是远程剖析。实现的原理是在远程机器上运行一个代理进程,要被远程剖析的程序或者Application Server启动的时候加一个JVM参数来识别这个代理进程,两者相互作用,代理就可以把收集到的信息发给在远程的一方(就是运行着eclipse的一方)。因此要实现Remote Profiling,还要在目标机器上装一个agent。 -->下载安装:http://www.eclipse.org/tptp/home/downloads/drops/TPTP-4.0.1.html 选择对应操作系统的Agent Controller下载,选择Runtime即可。下载后,阅读依照getting_started.html的说明来安装即可,这里简述一下:1、 把它的bin目录放到PATH里面2、 运行一下SetConfig来设置参数,注意如果想让除本地localhost意外所以机器都访问的话,要注意设置Network Access Mode,默认是localhost的。3、 运行RAStart来启动代理(Linux下)4、 服务器端程序(例如tomcat)启动的JVM参数里面加入-XrunpiAgent:server=enabled即可(还有其它参数值参见文档)5、 然后就可以在远程用eclipse来启动一个Profiling进程来attach到这个agent controller了。效果和在eclipse里面直接profile应用程序一样。