優化問題的思考

     編程已經很久了,到底怎麼才能寫出好的程序了,除了結構清晰優美,當然還要高效,怎麼進行程序的優化呢? Donald Knuth說“過早優化是萬惡之源”(premature optimization is the root of all evil)。所以就提倡“make it correct,  then make it fast”。但不論如何最後還是要優化。我覺得的優化步驟應該是這樣,首先編程時根據當時的情況做出最合適的選擇,不使程序的效率沒有理由的降低;編完了之後對影響效率的結構和算法做出優化(大多數是直覺);再使用性能分析工具(profile之類)的分析程序,對效率低的部分的程序調整,主要還是算法;最後沒有其他辦法了就使用一些平臺相關的手段(彙編等)來解決。還有在編碼和程序檢查階段要注意像CSAPP中所說的一些影響編譯器優化的問題(循環低效,存儲器別名,過多過程調用和內存引用等)。在現代計算機硬件越來越快的時代,似乎優化沒有以前那麼重要,但優秀的程序員能更充分的利用計算機爲用戶幹更多的事。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章