1.如果壹個類的方法可以定義為靜態,那麽盡量定義為靜態,速度會提高近4倍。2.$row['id']的速度是$row[id]的7倍。
3.echo比print快,使用echo的多個參數,而不是字符串串聯,比如echo $ str 1和$ str 2。
4.在執行for循環之前,確定最大循環次數。與其每次循環都計算最大值,不如改用foreach。5.註銷那些不用的變量,尤其是大型數組,以便釋放內存。
6.盡量避免使用__get、__set和__autoload。
7.require_once()開銷很大。
8.包含文件時盡量使用絕對路徑,因為這樣避免了PHP在include_path中查找文件的速度,而且解析操作系統路徑花費的時間更少。
9.如果想知道腳本什麽時候開始執行,用$_SERVER['REQUEST_TIME']比TIME()好。
10,函數代替正則表達式完成同樣的函數。
11和str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。12.如果壹個字符串替換函數可以接受數組或字符作為參數,並且參數的長度不是太長,可以考慮多寫壹段替換代碼,讓參數壹次壹個字符,而不是只寫壹行代碼接受幾組作為參數進行查詢和替換。
13.使用select branch語句比使用多個if和else if語句更好。
14.使用@來屏蔽錯誤消息是非常低效的。
15.打開apache的mod_deflate模塊可以提高網頁的瀏覽速度。
16,數據庫連接用完要關閉,不要使用長連接。
錯誤消息代價很高。
18.在方法中遞增局部變量是最快的。幾乎和在函數中調用局部變量壹樣快。
19.遞增壹個全局變量比遞增壹個局部變量慢兩倍。
20.遞增壹個對象屬性(如:$ this->;Prop++)比遞增壹個局部變量慢3倍。
21.遞增壹個未定義的局部變量比遞增壹個預定義的局部變量慢9到10倍。
22.只定義壹個局部變量而不在函數中調用,也會減慢速度(程度相當於增加壹個局部變量)。PHP可能會檢查是否有全局變量。
23.方法調用似乎與類中定義的方法數量無關,因為我添加了10個方法(測試方法前後),但性能沒有變化。
24.派生類中的方法比基類中定義的相同方法運行得更快。
25.調用帶有壹個參數的空函數與執行7到8次局部變量增量操作花費的時間相同。類似方法調用花費的時間接近15次局部變量增量操作。
26.Apache解析PHP腳本的時間比解析靜態HTML頁面慢2到10倍。盡量多使用靜態HTML頁面,少用腳本。
27.除非腳本可以緩存,否則每次調用時都會重新編譯。引入PHP緩存機制通常可以提高25%到100%的性能,避免編譯開銷。
28、嘗試做緩存,可以用memcached。Memcached是壹個高性能的內存中對象緩存系統,可用於加速動態Web應用程序和減少數據庫負載。緩存OP代碼非常有用,因此不必為每個請求重新編譯腳本。
29.當操作壹個字符串並檢查它的長度是否滿足某些要求時,您會自然地使用strlen()函數。這個函數執行起來相當快,因為它不做任何計算,只返回存儲在zval結構(C內置的用於存儲PHP變量的數據結構)中的已知字符串長度。但是因為strlen()是壹個函數,所以會有些慢,因為函數調用會經歷很多步驟,比如小寫字母,哈希查找,會跟在被調用的函數後面。在某些情況下,您可以使用isset()技術來加速代碼的執行。(例子如下)If(strlen $ foo)< 5){ echo " foois太短" $}(對比以下技能)If(!Isset ($ foo {5}) {echo "foo太短" $}調用Isset()只是比strlen()快,因為與後者不同,isset()作為壹個語言結構,意味著它的執行不需要函數搜索和小寫字母。換句話說,妳實際上不會在頂層代碼中花太多的錢來檢查字符串的長度。
30.當變量$i遞增或遞減時,$i++會比++ I $ I慢,這種差異是PHP特有的,不適用於其他語言,所以請不要修改妳的C或Java代碼,指望它們馬上變快。沒用的。++$i更快,因為它只需要3個操作碼,而$i++需要4條指令。Post-increment實際上會產生壹個臨時變量,然後這個變量會被遞增。預增量直接在原始值上增加。這是壹種優化處理,就像Zend的PHP優化器壹樣。記住這個優化過程是壹個好主意,因為不是所有的指令優化器都做相同的優化過程,並且有大量的互聯網服務提供商(ISP)和服務器沒有指令優化器。31,不是所有東西都是面向對象(OOP)的,面向對象往往代價很大,每個方法和對象調用都要消耗大量內存。
32.沒有必要用類來實現所有的數據結構,數組也是有用的。
33.方法不要細分太多。仔細考慮您真正打算重用的代碼。
當妳需要的時候,妳總是可以把代碼分解成方法。
35.盡量使用大量的PHP內置函數。
36.如果代碼中有大量耗時的函數,可以考慮用C擴展實現。
37.剖析您的代碼。檢查器會告訴妳代碼的哪些部分消耗了多少時間。Xdebug調試器包含檢查程序,評估檢查可以從整體上顯示代碼的瓶頸。
38.mod_zip可以作為Apache模塊,瞬間壓縮妳的數據,減少80%的數據傳輸。
39.當file_get_contents可以代替file、fopen、feof、fgets等系列方法使用時,盡量使用file_get_contents,因為這樣效率要高得多!但是打開壹個URL文件要註意file_get_contents的PHP版本;
40.盡量少操作文件,雖然PHP的文件操作效率不低;
41,優化Select SQL語句,盡量少進行插入和更新操作(我因為更新被批評);
42.盡可能多的使用PHP內部函數(但是我為了找壹個PHP中不存在的函數,浪費了本來可以寫自定義函數的時間。好壹個體驗問題!);
43.不要在循環內部聲明變量,尤其是大型變量:objects(看來這不僅僅是PHP要註意的問題吧?);44.多維數組盡量不要嵌套循環賦值;
45.能用PHP內部字符串操作函數的時候不要用正則表達式;
46.foreach效率更高。嘗試使用foreach,而不是while和for循環。
47.使用單引號而不是雙引號來引用字符串;
48."將i=i+1替換為i+=1。符合c/c++的習慣,效率還是高的。”
49.對於全局變量,unset()用完就要丟棄;