2) JDK性能评测[2]
JDK配套提供了一个内建的评测程序,能跟踪花在每个例程上的时间,并将评测结果写入一个文件。不幸的是,JDK评测器并不稳定。它在JDK 1.1.1中能正常工作,但在后续版本中却非常不稳定。
为运行评测程序,请在调用Java解释器的未优化版本时加上-prof选项。例如:
java_g -prof myClass
或加上一个程序片(Applet):
java_g -prof sun.applet.AppletViewer applet.html
理解评测程序的输出信息并不容易。事实上,在JDK 1.0中,它居然将方法名称截短为30字符。所以可能无法区分出某些方法。然而,若您用的平台确实能支持-prof选项,那么可试试Vladimir Bulatov的"HyperPorf"[3]或者Greg White的"ProfileViewer"来解释一下结果。
3) 特殊工具
如果想随时跟上性能优化工具的潮流,最好的方法就是作一些Web站点的常客。比如由Jonathan Hardwick制作的"Tools for Optimizing Java"(Java优化工具)网站:
http://www.cs.cmu.edu/~jch/java/tools.html
4) 性能评测的技巧
■由于评测时要用到系统时钟,所以当时不要运行其他任何进程或应用程序,以免影响测试结果。
■如对自己的程序进行了修改,并试图(至少在开发平台上)改善它的性能,那么在修改前后应分别测试一下代码的执行时间。
■尽量在完全一致的环境中进行每一次时间测试。
■如果可能,应设计一个不依赖任何用户输入的测试,避免用户的不同反应导致结果出现误差。
3 提速方法
现在,关键的性能瓶颈应已隔离出来。接下来,可对其应用两种类型的优化:常规手段以及依赖Java语言。
1) 常规手段
通常,一个有效的提速方法是用更现实的方式重新定义程序。例如,在《Programming Pearls》(编程拾贝)一书中[14],Bentley利用了一段小说数据描写,它可以生成速度非常快、而且非常精简的拼写检查器,从而介绍了Doug McIlroy对英语语言的表述。除此以外,与其他方法相比,更好的算法也许能带来更大的性能提升--特别是在数据集的尺寸越来越大的时候。欲了解这些常规手段的详情,请参考本附录末尾的"一般书籍"清单。
文章来源于领测软件测试网 https://www.ltesting.net/