最近在做php程式的效能最佳化,一些經過測試後發現的東西就先記錄下來吧,以備後用。
首先對於一些反應慢的操作或頁面要追蹤處理一下,可以使用webGrind的方式看一下主要問題出在哪裡
其次,對於方法的優化,一個是查看方法中調用的語句的優化,一個是對於方法本身演算法的最佳化,所呼叫的方法的位置也很重要,一般來說,呼叫其他的文件中的方法沒有呼叫本頁面中的方法快,如果是經常使用的方法,而且調用的過程比較費時的話,為了效能考慮,可以將此方法移植到本頁面中。
方法體中的語句的最佳化包含呼叫的方法的最佳化,例如使用語句$a==''不如使用$a.length()==0,更最佳化的是empty($a),寫程式碼時盡量使用效能最好的方法,例如:preg_replace不如str_replace,str_replace效能不如strtr,等長度替換用strtr,不等長替換就用str_replace
迴圈盡量使用foreach而不是for
,這要從javascript壓縮,css壓縮、圖片盡量採用png格式的,另外最好採用圖片的切分css方式來載入圖片。
開啟整站程式碼壓縮,啟用gzip壓縮
可以考慮使用一些php二進位程式碼最佳化工具,例如xcache來優化後台的程式碼
可以考慮用一些最前沿的技術例如:memcache儲存一些小的字串,這比檔案快取效能好很多,也可以考慮使用redias之類的。
程式中如果可以不引用外界文件的話就不要引用,引用文件也是需要一定的時間消耗的,盡可能少引用其他文件進來,另外對於一些分支語句,如果對本分支無用的語句一定不要讓本分支也訪問到,這是浪費。
如果實在改不動的話,可以考慮最佳化演算法以及框架了。