软件的优化是指优化软件的各个质量因素,如提高运行速度、提高对内存资源的利用率、使用户界面更加友好、使三维图形的真实感更强等等。我们应该树立这样的正确认识:优化工作不是可有可无的事情,而是必须要做的事情。

  当优化工作成为一种责任时,程序员才会不断改进软件中的算法,数据结构和程序组织,从而提高软件质量。著名的3D游戏软件Quake,能够在PC机上实时地绘制高度真实感的复杂场景。Quake的开发者能把很多成熟的图形技术发挥到极致,例如把Bresenham画线、多边形裁剪、树遍历等算法的速度提高近一个数量级,其技术水平已经远胜于目前国内领先的图形学相关科研成果。
  优化工作是十分复杂的,有时很难实现所有目标的优化,这时就需要"折衷"策略。软件的折衷策略是指通过协调各个质量因素,实现整体质量的最优。
  软件折衷的重要原则是不能使某一方损失关键的职能,更不可以象"舍鱼而取熊掌"那样抛弃一方。例如3D动画软件的瓶颈通常是速度,但如果为了提高速度而在程序中取消光照明计算,那么场景就会丧失真实感,3D动画也就不再有意义了。

  折衷是有原则的,如果滥用折衷的话,那么一旦碰到困难,人们就会用拆东墙补西墙的方式去折衷,不再下苦功去做有意义的优化。所以,我们应当坚持这样的折衷立场:在保证其它因素不差的前提下,使某些因素变得更好。