編程已經很久了,到底怎麼才能寫出好的程序了,除了結構清晰優美,當然還要高效,怎麼進行程序的優化呢? Donald Knuth說“過早優化是萬惡之源”(premature optimization is the root of all evil)。所以就提倡“make it correct, then make it fast”。但不論如何最後還是要優化。我覺得的優化步驟應該是這樣,首先編程時根據當時的情況做出最合適的選擇,不使程序的效率沒有理由的降低;編完了之後對影響效率的結構和算法做出優化(大多數是直覺);再使用性能分析工具(profile之類)的分析程序,對效率低的部分的程序調整,主要還是算法;最後沒有其他辦法了就使用一些平臺相關的手段(彙編等)來解決。還有在編碼和程序檢查階段要注意像CSAPP中所說的一些影響編譯器優化的問題(循環低效,存儲器別名,過多過程調用和內存引用等)。在現代計算機硬件越來越快的時代,似乎優化沒有以前那麼重要,但優秀的程序員能更充分的利用計算機爲用戶幹更多的事。
優化問題的思考
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
sorted 在python2和3中的區別
冯斯特罗
2020-07-08 12:31:35
monggoDB學習筆記
MK_夕阳
2020-07-08 12:27:44
Shell編程入門(二)
存在即合理_
2020-07-08 11:22:52
在使用Django出現的疑難雜症
存在即合理_
2020-07-08 11:22:52
Shell編程入門(三)
存在即合理_
2020-07-08 11:22:52
Android M 新特性
Jay白色风车
2020-07-08 10:03:22
學習筆記----伸展樹
画船听雨
2020-07-08 09:04:26
mini2440開發板學習裸機開發——day1 裸機運行LED燈程序
yantu 12
2020-07-08 08:59:17
java入門程序100例學習筆記(005遞歸調用)
swll
2020-07-08 06:59:06
pandas數據分析讀書筆記(五)
__LeeKuanYew
2020-07-08 06:46:51
Spring+SpringMVC+Mybatis項目中pom.xml模板
user_q
2020-07-08 06:30:02
Redis在Windows系統下安裝成服務
user_q
2020-07-08 06:30:02
小程序數據請求注意事項
十三画13
2020-07-08 04:25:07