编程已经很久了,到底怎么才能写出好的程序了,除了结构清晰优美,当然还要高效,怎么进行程序的优化呢? Donald Knuth说“过早优化是万恶之源”(premature optimization is the root of all evil)。所以就提倡“make it correct, then make it fast”。但不论如何最后还是要优化。我觉得的优化步骤应该是这样,首先编程时根据当时的情况做出最合适的选择,不使程序的效率没有理由的降低;编完了之后对影响效率的结构和算法做出优化(大多数是直觉);再使用性能分析工具(profile之类)的分析程序,对效率低的部分的程序调整,主要还是算法;最后没有其他办法了就使用一些平台相关的手段(汇编等)来解决。还有在编码和程序检查阶段要注意像CSAPP中所说的一些影响编译器优化的问题(循环低效,存储器别名,过多过程调用和内存引用等)。在现代计算机硬件越来越快的时代,似乎优化没有以前那么重要,但优秀的程序员能更充分的利用计算机为用户干更多的事。
优化问题的思考
最新推荐文章于 2022-07-07 22:32:49 发布