php效能優化小技巧
:
1. foreach效率更高,盡量用
foreach
代替while
和for
迴圈。
2. 迴圈內部不要宣告變數,尤其是物件這樣的變數。
3. 在多重巢狀迴圈中,如有可能,應當將最長的迴圈放在內層,最短迴圈放在外層,從而減少
cpu跨迴圈層的次數,優化程式效能。
4. 用單引號替代雙引號引用字串以實現
php效能優化。
5. 用
i+=1
代替i=i+1
。符合c/c++
的習慣,效率還高。
6. 優化
select sql
語句,在可能的情況下盡量少的進行
insert
、update
操作,達到
php效能優化的目的。
7. 盡量的少進行檔案操作,雖然
php的檔案操作效率也不低的。
8. 盡可能的使用
php內部函式。
9. 在可以用
php內部字串操作函式的情況下,不要用正規表示式。
10. 在可以用
file_get_contents
替代file
、fopen
、feof
、fgets
等系列方法的情況下,盡量用
file_get_contents
,因為它的效率高得多。但是要注意
file_get_contents
在開啟乙個
url檔案時候的
php版本問題。
11.盡量靜態化
如果乙個方法能被靜態,那就宣告它為靜態的,速度可提高1/4,甚至我測試的時候,這個提高了近三倍。
當然了,這個測試方法需要在十萬級以上次執行,效果才明顯。
其實靜態方法和非靜態方法的效率主要區別在記憶體:靜態方法在程式開始時生成記憶體,例項方法(非靜態方法)在程式執行中生成記憶體,所以靜態方法可以直接呼叫,例項方法要先成生例項再呼叫,靜態速度很快,但是多了會佔記憶體。
任何語言都是對記憶體和磁碟的操作,至於是否物件導向,只是軟體層的問題,底層都是一樣的,只是實現方法不同。靜態記憶體是連續的,因為是在程式開始時就生成了,而例項方法申請的是離散的空間,所以當然沒有靜態方法快。
靜態方法始終呼叫同一塊記憶體,其缺點就是不能自動進行銷毀,而例項化可以銷毀。
12.echo效率高於
因為echo沒有返回值,print返回乙個整型。測試:
echo
0.000929 - 0.001255 s (平均
0.001092 seconds)
0.000980 - 0.001396 seconds (平均
0.001188 seconds)
相差8%左右,總體上echo是比較快的。
注意:echo輸出大字串的時候,如果沒有調整就會嚴重影響效能。開啟apache的mod_deflate進行壓縮,或者開啟ob_start將內容放進緩衝區可以改善效能問題。
13.盡量的少進行檔案操作,雖然php的檔案操作效率也不低的
14.優化select sql語句
在可能的情況下盡量少的進行insert、update操作(在
update
上,我被惡批過)。
15.用字串而不是陣列作為引數
如果乙個函式既能接受陣列,又能接受簡單字元做為引數,那麼盡量用字元作為引數。例如字元替換函式,引數列表並不是太長,就可以考慮額外寫一段替換**,使得每次傳遞引數都是乙個字元,而不是接受陣列做為查詢和替換引數。大事化小,1+1>2。
16.最好不用@
用@掩蓋錯誤會降低指令碼執行速度,並且在後台有很多額外操作。用@比起不用,效率差距 3 倍。特別不要在迴圈中使用@,在 5 次迴圈的測試中,即使是先用error_reporting(0)關掉錯誤,在迴圈完成後再開啟,都比用@快。
17.陣列元素加引號
$row['id']比$row[id]速度快7倍,建議養成陣列鍵名加引號的習慣。
18別在迴圈裡用函式
例如:for($x=0; $x < count($array); $x++)
這種寫法在每次迴圈的時候都會呼叫 count() 函式,效率大大降低,建議這樣:
$len = count($array);
for($x=0; $x < $len; $x++)
讓函式在迴圈外面一次獲得迴圈次數。
優化php效能
優化php效能的五個實用技巧 以下是五個優化技巧,熟練掌握後對於開發還是很有幫助的。1.對字串使用單引號 php 引擎允許使用單引號和雙引號來封裝字串變數,但是這個是有很大的差別的!使用雙引號的字串告訴 php 引擎首先去讀取字串內容,查詢其中的變數,並改為變數對應的值。一般來說字串是沒有變數的,所...
php 效能優化
1 使用 優化工具 zend optimizer,原理是通過檢測zend引擎產生的中間 並且優化他 來提高速度 安裝 zend optimizer,在php.ini裡新增 zend optimizer.optimization level 15 zend extension path to zend...
PHP效能優化
php效能優化 程式優化 1 最好是使用字串連線與單引號,而不是雙引號字串。2 不要隨便複製變數。3 盡量使用echo輸出字串。4 盡量不要使用連線符,輸出多個變數時可以用逗號分開。5 盡量使用switch代替if else。6 不做無畏的替換,先用strpos查詢再做替換,不要做替換效率高200 ...