PHP效能優化

2021-06-28 02:36:27 字數 2821 閱讀 1383

php效能優化:

程式優化:

1、最好是使用字串連線與單引號,而不是雙引號字串。

2、不要隨便複製變數。

3、盡量使用echo輸出字串。

4、盡量不要使用連線符,輸出多個變數時可以用逗號分開。

5、盡量使用switch代替if else。

6、不做無畏的替換,先用strpos查詢再做替換,不要做替換效率高200%,需要替換只慢0.1%左右。

7、慎用@操作符。

8、包含其它檔案時盡量使用絕對路徑與相對路徑。

9、如果能將類的方法定義成static,就盡量定義成static,它的速度會提公升將近4倍。

10、$row[』id』] 的速度是$row[id]的7倍。

11、在執行for迴圈之前確定最大迴圈數,不要每迴圈一次都計算最大值,最好運用foreach代替,foreach效率更高,盡量用foreach代替while和for迴圈。

12、登出那些不用的變數尤其是大陣列,以便釋放記憶體。

13、盡量避免使用__get,__set,__autoload。

14、require_once()代價昂貴,requre比它都要好。

16、如果你想知道指令碼開始執行(譯註:即伺服器端收到客戶端請求)的時刻,使用$_server[『request_time』]要好於time()。

17、函式代替正規表示式完成相同功能,在可以用php內部字串操作函式的情況下,不要用正規表示式。

18、str_replace函式比preg_replace函式快,但strtr函式的效率是str_replace函式的四倍。

19、如果乙個字串替換函式,可接受陣列或字元作為引數,並且引數長度不太長,那麼可以考慮額外寫一段替換**,使得每次傳遞引數是乙個字元,而不是只寫一行**接受陣列作為查詢和替換的引數。

20、開啟apache的mod_deflate模組,可以提高網頁的瀏覽速度。

21、資料庫連線當使用完畢時應關掉,不要用長連線。

22、錯誤訊息代價昂貴。

23、在方法中遞增區域性變數,速度是最快的。幾乎與在函式中呼叫區域性變數的速度相當。

24、遞增乙個全域性變數比遞增乙個區域性變數慢2倍、遞增乙個物件屬性($this->prop++)要比遞增乙個區域性變數慢3倍、遞增乙個未預定義的區域性變數要比遞增乙個預定義的區域性變數慢9至10倍。

25、僅定義乙個區域性變數而沒在函式中呼叫它,同樣會減慢速度(其程度相當於遞增乙個區域性變數)。php大概會檢查看是否存在全域性變數。

26、方法呼叫看來與類中定義的方法的數量無關,因為我(在測試方法之前和之後都)新增了10個方法,但效能上沒有變化。

27、派生類中的方法執行起來要快於在基類中定義的同樣的方法。

28、呼叫帶有乙個引數的空函式,其花費的時間相當於執行7至8次的區域性變數遞增操作。類似的方法呼叫所花費的時間接近於15次的區域性變數遞增操作。

29、盡量做快取,可使用memcached。memcached是一款高效能的記憶體物件快取系統,可用來加速動態web應用程式,減輕資料庫負載。

30、呼叫isset()恰巧比strlen()快,strlen($foo) < 5與!isset($foo。

31、並不是事必物件導向(oop),物件導向往往開銷很大,每個方法和物件呼叫都會消耗很多記憶體。

32、並非要用類實現所有的資料結構,陣列也很有用。

33、不要把方法細分得過多,仔細想想你真正打算重用的是哪些**? 當你需要時,你總能把**分解成方法。

34、盡量採用大量的php內建函式。

35、如果在**中存在大量耗時的函式,你可以考慮用c擴充套件的方式實現它們。

36、評估檢驗(profile)你的**。檢驗器會告訴你,**的哪些部分消耗了多少時間。xdebug偵錯程式包含了檢驗程式,評估檢驗總體上可以顯示出**的瓶頸。

36、mod_zip可作為apache模組,用來即時壓縮你的資料,並可讓資料傳輸量降低80%。 

37、在可以用file_get_contents替代file、fopen、feof、fgets等方法的情況下,file_get_contents效率高得多!但是要注意file_get_contents在開啟乙個url檔案時候的php版本問題。

38、盡量的少進行檔案操作,雖然php的檔案操作效率也不低的。

39、優化select sql語句,在可能的情況下盡量少的進行insert、update操作。

40、迴圈內部不要宣告變數,尤其是大變數:物件。

41、多維陣列盡量不要迴圈巢狀賦值。

42、用i+=1代替i=i+1。符合c/c++的習慣,效率還高。

43、對global變數,應該用完就unset()掉。

44、在引數中,傳遞陣列時應用 rechanging 比應用 global 要高效(個人發現rechanging並不存在)。

45、那個源**用於得到程式列表對應的**。

46、在迴圈中判斷時,數value判斷應用恒等(==)要比等於(===)高效。

47、查詢時盡量應用 in 少用 limit。

48、rand和mt_rand兩者都是提供產生隨機數的功能,前者為libc標準的rand。後者為mersenne twister中已知特性作為隨機數發生器,它可以產生隨機數值的平均速度比libc提供快四倍。

49、在zend裡面,n目前取值是32。因此,我們編寫php程式的時候,函式呼叫層次最好不要超過32。

優化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效能優化

1.1多用php自身能力 1.2php內建函式優化 1.3少用魔法函式 1.4合理使用記憶體 1.5避免在迴圈內做運算 1.6減少大規模計算 1 檢視mysql是否開啟慢查詢日誌 show variables like slow query log 2 設定沒有索引的記錄到慢查詢日誌 set glo...