我们在开发商用系统的时候,通常要让它满足很多性能需求,例如执行速度、资源占用等。在本篇文章中我们将通过几个例子来探讨定制编程在优化性能中的作用。尽管编译器和最新的Java虚拟机提供了一些工具来实现程序的自动优化,不过要想真正获得最大性能的程序,除了依靠它们外,你还有必要在编程的时候使用巧妙的数据结构和针对特定问题而设计的新优化算法。
验证方法介绍
在本篇文章中,我们将通过对比验证的方式来证明上述观点的正确性,我们将分别给出标准的Java整数排序程序,还有根据特定内容进行定制化编程的排序程序,并对两者进行对比,对比结果以图形的方式直观的显示出来。
本篇文章中涉及到的所有验证示例都将运行多次,取其平均表现,从而最大限度减少由于意外的操作系统行为造成的结果差异。另外,所有测试都在一个独立的系统上运行,该系统上没有其它用户和其它运行的程序,以保证结果的准确性。为了减少人工错误,测试结果被测量程序直接输出到一个外部文件中,并由一个图形程序自动来根据这些数据生成对比图。关联程序同时也会检查并使用平均测试结果,抛弃异常数据。总之,尽量使测试结果能够客观真实的反映不同程序的性能表现。
高效编程
一个程序执行的指令越少它运行的速度就越快,这个观点并非笔者首先提出,也不具有争议性,这是在多年的计算机科学发展已经证明的一个常识。无论你的程序使用什么语言编写,它通常都适用这个原则,当然使用Java和C++编写的程序也不例外,人们通常使用这两种编程语言来开发大型、可升级、快速的分布式系统。
从实际效果来看,要想成功的实现一个运行最快、消耗资源最少的程序,通常要求我们使用一个通用语言(诸如Java或C++)并根据特定编程环境来手动来进行编程。与之相对应的是,单纯依靠配置普通的组件,不根据特定环境进行程序设计和实现,程序优化任务或者借助于现成的代码库或编辑器的自动优化功能,或者借助于JVM技术中高级功能。的确,在很多环境下后面的做法可能也足够了,但是依靠这种方法你编写出来的程序不一定具有最佳的性能。从根本上来说,定制化的设计、编码和优化,再加上这些过程中程序员的创新技能,这些因素加起来将可以做出运行最快和扩展性最强的程序。