代碼優化之感想

 

    總結一下上個月的工做內容,主要的重點是了進行各個模塊的代碼優化。代碼優化的好處多多,可是這並不意味着全部的代碼都須要進行優化,有時過分的優化反而拔苗助長——費時、費力、不討好。 數據庫

    在項目開發中,因爲各類因素的限制(時間,設計,技術,人員素質等),基本上每一個軟件項目都有優化的必要。就像好的文章是改出來的,而好的程序也是同樣。可是,是否須要優化,怎麼優化由不少因素決定。而優化須要花費的成本,是一個必須考慮的問題。一個正確的、運行穩定、代價適中的程序更容易被接受。所以,在對項目進行優化時,須要進行一系列的討論。 網絡

    首先,明確優化的目標是很是必要的。在優化工做開始的時候,你還還沒有明確優化內容和目的,那麼你很容易陷入誤區。在一開始,你就應該清楚地瞭解你要達到的效果,以及其餘優化相關的各類問題。這些目標須要明確指出(至少精通技術的項目經理能夠理解和表達它),接下來,在整個優化過程當中,你須要堅持這些目標。 性能

    在實際的項目開發中,常常會存在各類各樣的變數。可能一開始時要優化這一方面,隨後你可能會發現須要優化另外一方面。這種狀況下,你須要清晰地瞭解這些變化,並確保團隊中的每一個人都明白目標已經發生了變化。 優化

    其次,選擇一個正確的指標,這是優化的一個重要組成部分,你須要按照這些指標來測量優化工做的進展狀況。若是指標選擇不恰當,或者徹底錯誤,你所作的努力有可能白費了。即便指標正確,也必須有一些辨別。在某些狀況下,將最多的努力投入到運行消耗時間最多的那部分代碼中,這是實用的策略。須要注意的是,若是你輕易選擇了一個很容易達到的指標,這做用不大,由於沒有真正解決問題。你有必要選擇一個更復雜的、更接近你的目標的指標。 spa

    優化在刀刃上 這是有效優化的關鍵。找到項目中與你的目標(性能、資源或其餘)相背的地方,並將你的努力和時間用在那裏。 舉一個典型的例子,一個Web項目速度比較慢,開發者在優化時將大部分精力放在了數據庫優化上,最終發現真正的問題是網絡鏈接慢。 另外,不要分心於容易實現的問題。這些問題儘管很容易解決,但可能不是必要的,或與你的目標不相符。容易優化並不意味着值得你花費工夫。 設計

    優化不是萬金油優化最重要的規則之一是,你沒法優化一切,甚至沒法同時優化兩個問題。好比,優化了速度,可能會增長資源利用;優化了存儲的利用率,可能會使其餘地方放慢。你須要權衡一下,哪一個更符合你的優化目標。 資源

    還有一個重要的前提是通過優化的代碼要保證原有的功能不會出錯。如果沒法保證,優化的意義也就不存在了。 開發

    以上幾點是經過這一個月的優化工做而且參考了文章《代碼優化是把雙刃劍》獲得的感想。 軟件

相關文章
相關標籤/搜索