谨慎地设计程序后,有清晰,简明,结构良好的实现,那么可以考虑优化问题.
在每次视图做优化前后,要对性能进行评估.可能惊讶的发现优化前后对性能没有影响,或者性能下降.
原因在于什么呢?要猜出程序把时间花费在哪些地方并不容易.你认为程序慢的地方可能并没有问题.此刻优化等于浪费时间.
大多数人认为,程序把80%的时间花费在20%的代码上.
性能剖析工具有助于你决定应该把优化的重心当在哪里.工具可以提供运行时信息,比如方法运行时间,被调用多少次,警告你是否改变算法.
JDK带有简单的性能剖析器,IDE有成熟的性能分析工具.
在java平台进行优化结果测量,比在其他传统平台更有必要.因为java语言没有很强的性能模型,各种操作相对开销没有明确定义.
不要费力去编写快速程序,应该努力编写好的程序,速度自然随之而来.
在设计系统是,特别考虑在设计API,线路层协议,和永久数据格式的时候,一定要考虑性能问题.在构建系统后,要测试它的性能.如果足够快,那么任务完成;如果不够快,在性能分析器帮助下,找到问题根源,然后设法优化系统中相关部分.
检查所选的算法,再多底层优化也无法弥补算法选择的不当,必要时重复这个过程,在每次检查之后要测量性能,直到满意为止.