我似乎注意到在优化方面出现了两种思想流派:
过早优化是万恶之源.您应该只在编写最可读和最简单的东西时进行优化.如果在分析后确定软件太慢,则应进行优化.
优化应该在项目的生命周期的早期完成.优化需要进行规划,但应该合理地进行.
从表面上看,他们似乎是相当反对的观点.问题是,我看到了两种思想流派的优点.我还可以想到,这两种思维方式都有助于我编写更好,更快的软件.
有没有办法调和这两个想法?有中间地带吗?是否有时候一个想法是这项工作的最佳工具?或者我是否提出了错误的二分法,这两种观点可以和平共处?
尽早在设计和架构层面进行优化.稍后在实施级别进行微优化.
您需要了解您所做的设计决策的性能成本,以后将难以更改.实施通常可以在以后进行调整,这就是为什么在您知道这是一个问题之前不值得这样做.
我通常做的是应用那些不花费我任何成本(或几乎没有)的优化.我也一直在寻找那些不能很好地扩展并且经常调用的算法.除此之外,我不会优化,直到软件运行,我有机会启动探查器.只有这样,我才会投入一些时间进行优化.