PHP效能優化

2021-07-24 03:59:50 字數 2221 閱讀 2504

php專案優化主要三個方面

一、php語言級效能優化

二、php周邊問題的效能優化

三、php底層

php語言級效能優化

1)少寫**,多用php自身能力。

盡量使用php原生函式和常量,類

如果要實現的功能有原生php函式,則不要自己用php實現

2)盡量使用效能更高的內建函式

比如isset和array_key_exists都可以使用,則使用isset

3)產生額外開銷的錯誤抑制符@

4)合理使用記憶體(php有記憶體**機制保底,但也請小心使用記憶體,建議:利用unset() 及時釋放不使用的記憶體)

5)盡量少的使用正規表示式(建議,利用字串處理函式,實現相同邏輯)

6)迴圈內的計算式將會被重複計算。經常犯的錯誤是把乙個sql 操作放置到乙個迴圈中,這就導致頻繁的訪問資料庫,更重要的是,這會直接導致指令碼的效能低下。以下的例子,你能夠把乙個迴圈操作重置為乙個單一的sql語句。 例:

<?php  

//建議

$str = 'hello world';

$strlen = strlen($str);

for($i = 0 ; $i<$strlen;$i++)

?>

?>

foreach ($userlist as $user) 

過程:1insert into users (first_name,last_name) values("john", "doe")

替換成:
$userdata = array();

foreach ($userlist as $user)

$query = 'insert into users (first_name,last_name) values' . implode(',', $userdata);

mysql_query($query);

過程:1insert into users (first_name,last_name) values("john", "doe"),("jane", "doe")...

7)沒有原因不要copy變數。有時初級phper,為了使**更加「乾淨」,常常把已經定義的變數重新賦值給另乙個變數。這實際上就導致了雙重記憶體的消耗(當改變變數的時候),這就導致指令碼的效能下降。比如乙個使用者把乙個512kb的變數在額外插入給另乙個變數,那麼就會導致1mb的記憶體被消耗掉。

$description = strip_tags($_post['description']);

echo $description;

替換為:

echo strip_tags($_post['description']);

php周邊問題效能優化

周邊:

1)linux 執行環境

檔案儲存(硬碟,ssd)

資料庫(

mysql 索引使用,nosql+mysql的配合使用,mysql主從等

)快取(memcache redis)

2)減少檔案類操作

常見php場景的開銷次序:

讀寫磁碟、讀寫資料庫、讀寫記憶體、讀寫網路資料

讀寫記憶體<< 讀寫資料庫《讀寫磁碟《讀寫網路資料(基於檔案系統)

3)優化網路請求

例: 對方介面的不確定因素,網路穩定性

設定超時時間

a)連線超時 (不能超過 200ms) b)讀超時(800ms)  c)寫超時(500ms)

2) 將序列請求並行化

a)使用curl_multi_*() b)使用swoole擴充套件

4)壓縮php介面輸出

5)php快取重複計算內容

6)smarty 調優和重疊時間視窗思想 7)

使用xhprof分析專案原始碼,找出瓶頸進行優化

工具:xhporf(源自fackbook的php效能分析工具)

ab - 壓力測試

vld - opcode **分析

php底層

1)使用opcode擴充套件 快取php的opcode**,減少php的編譯過程 2)

cpu密集或者複雜功能使用php的pecl擴充套件(swoole等優秀擴充套件的使用)3)

優化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 ...