我们可以将软件开发过程比作玩杂耍。通常,人们在玩杂耍时至少需要三件物品,而对于可以使用的物品数量并没有任何限制。刚开始学习如何玩杂耍时,您会发现在接球和抛球时您看到的是单个的球。随着熟练程度的增加,您会开始将注意力集中在这些球的运动上,而不是集中在每个单个的球上。当您掌握了玩杂耍的方法时,您就会再次将注意力集中在单个球上,一边努力使这个球保持平衡,一边继续抛出其他的球。凭直觉您就可以知道这些球的运动方向,并且也总是能将手放在正确的地方接球和抛球。可是,这与软件开发又有什么类似之处呢?
不同的角色在软件开发的过程中会“耍弄”不同的三件物品:项目和程序管理人员耍弄的是功能、资源和时间,而软件开发人员则耍弄正确性、性能和安全性。人们在玩杂耍时总是试图使用更多的物品,但只要是学过杂耍的人都会知道,即使只添加一个球都会让在空中保持所有球的平衡变得更加困难。从技术上讲,如果耍弄的球少于三个,那根本就不叫杂耍。作为软件开发人员,如果您不考虑正在编写的代码的正确性、性能和安全性,则说明您根本就没有投入到您的工作中。当您刚刚开始考虑正确性、性能和安全性时,您会发现您每次只能将注意力集中在一个方面。当它们成为您日常工作的一部分时,您会发现您再也不需要将注意力集中在某一个特定的方面,因为此时它们早已融入了您的工作。而一旦掌握了它们,您就能够凭直觉进行权衡,并相应地调整自己的注意点。这就跟玩杂耍一样,关键在于实践。
编写高性能的代码本身也存在三件物品:设置目标、测量和了解目标平台。如果您不知道代码必须达到的运行速度,那么您又如何知道您完成了呢?如果您不测量和分析代码,那么您又如何知道您已经达到了目标,或为什么没有实现目标呢?如果您不了解目标平台,那么当您没有实现目标时,又如何知道要对什么进行优化呢?这些原则对所有的高性能代码开发过程几乎都适用,不管您以哪种平台作为目标平台都一样。要完成一篇有关编写高性能代码的文章,就必须提到以上这三个方面。
在任意平台上编写高性能代码的基本原则为:
- 设置性能目标
- 测量,测量,再测量
- 了解应用程序的目标硬件和软件平台
原文来自于MSDN的一篇技术文档,感觉开头这段写得有点意思,故提取出来,自我感悟...