大家須知簡單的php效能最佳化注意點_php執行個體

來源:互聯網
上載者:User
什麼情況,可能遇到效能問題:

1.php文法使用的不恰當
2.使用php語言做了它不擅長做的事
3.用php語言已連線的服務不給力
4.php自身的短板
5.我也不知道的問題

一般情況:php效能問題不超過二分之一(一般30%~40%)

php效能問題解決方向:

php語言級的效能最佳化—>php周邊問題的效能最佳化(已連線的服務,網路環境)—>php語言自身分析和最佳化

(php語言級)

最佳化點:少寫代碼,多用php自身能力

問題:自寫代碼冗餘較多,可讀性不佳,導致效能低
為什麼低:php代碼需要編譯解析為底層語言,這一過程每次請求都會處理一遍,開銷大
方法:多使用php內建變數、常量、函數

最佳化點:php內建函數的效能優劣

情況描述:php內建函數,之間依然存在快慢差異
建議:多去瞭解php內建函數的時間複雜度

最佳化點:儘可能少用魔法函數

情況描述:php提供的魔法函數,效能不佳
為什麼效能低:為了為php程式員省事,php語言為你做了很多
好的方法:儘可能規避使用php魔法函數

最佳化點:產生額外開銷的錯誤抑制符@

實際邏輯:在代碼開始前,設定報錯層級最高,結束後,再回複設定報錯層級。增加Opcode,忽略報錯

最佳化點:合理使用記憶體

情況描述:php有記憶體回收機制保底,但也請小心使用記憶體
建議:利用unset()及時釋放不適用的記憶體(註:unset()出現登出不掉的情況)

最佳化點:盡量少的使用Regex

情況描述:正在運算式的回溯開銷較大,“沒有金剛鑽別攬陶瓷活”
建議:利用字串處理函數,實現相同邏輯

最佳化點:避免在迴圈內做運算

情況描述:迴圈內的計算式將會被重複計算

<?php$str="hello world"; 阿//strlen($str)放在外面for($i=0;$i

最佳化點:減少計算密集型業務

情況描述:php不適合密集型運算的情境

為什嗎?php語言特性決定了php不適合做大資料量運算
php適合情境:適合銜接Webserver與後端服務、UI呈現

最佳化點:務必使用帶引號字串做索引值

情況描述:php會將沒有引號的索引值當作常量,產生尋找常量的開銷
建議:嚴格使用引號作為索引值

--------------------------------------------

(php周邊問題的效能最佳化)-

運行環境,檔案儲存,資料庫,緩衝,網路

減少檔案類操作

常見php情境的開銷次序:
讀寫磁碟、讀寫資料庫、讀寫記憶體、讀寫網路資料
讀寫記憶體<<讀寫資料庫<讀寫磁碟<讀寫網路資料

最佳化網路請求

網路請求的坑:

1.對方介面的不確定因素

2.網路穩定性

如何最佳化網路請求?

1、設定逾時時間

a)連線逾時 200ms
b)讀逾時 800ms
c)寫逾時 500ms

2、將串列請求並行化

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

壓縮php介面輸出

緩衝重複計算內容

什麼情況下做輸出內容的緩衝?

多次請求,內容不變情況

重疊時間視窗思想

旁路方案

分析php自身分析和最佳化:

用工具測試

PHP效能瓶頸解決方案:
Opcode cache(代碼編譯的最後一個環節進行緩衝)PHP擴充APC做Opcode緩衝用的

補充壓力測試軟體使用說明:

Ab -h

apache Benchmark(ab)由Apache提供的壓力測試軟體,安裝apache伺服器時會內建該壓測軟體

使用:./ab -n1000 -c100 http://www.baidu.com/

-n請求數 -c並發數 url目標壓測地址

以上內容給大家介紹了簡單的php效能最佳化注意點,希望本文分享能夠協助到大家。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.