PHP效能最佳化

來源:互聯網
上載者:User

標籤:時間   lan   問題   server   字串處理   網路   strlen   產生   並行   

2015.8.17

 解決方向:PHP語言級的效能最佳化PHP周邊問題的效能最佳化PHP語言自身分析、最佳化(PHP底層 C層面上的)
 PHP語言級效能最佳化最佳化點:少些代碼,多用PHP自身能力    效能問題:自寫代碼冗餘較多,可讀性不佳,並且效能低    原因:PHP代碼需要編譯解析為底層語言,每次請求都會處理,開銷大
    多使用PHP內建變數、函數、變數
    php代碼運行流程:最佳化點:PHP內建函數的效能優劣    php內建函數之間依然存在快慢差異    多去瞭解PHP內建函數的時間複雜度最佳化點:盡量少用魔法函數    PHP提供的魔法函數,效能不佳
    儘可能規避使用PHP魔法函數(只是盡量,可以進行對比)最佳化點:產生額外開銷的錯誤抑制符@    @符號邏輯:在代碼前、結束後,增加Opcode,忽略報錯最佳化點:合理使用記憶體    PHP有記憶體回收機制保底,但是也請小心使用記憶體    利用unset()及時釋放不適用的記憶體(註:unset()出現登出不掉的情況)最佳化點:盡量少的使用Regex    Regex的回溯開銷較大,
    利用字串處理代碼,實現相同邏輯
最佳化點:避免在迴圈計算式內做運算    迴圈內的計算式將會被重複計算
  1. <?php
  2. $str="hello word";
  3. for($i=0;$i<strlen($str);$i++){
  4. //do something
  5. }
應該改為
  1. <?php
  2. $str="hello word";
  3. $count=strlen($str);
  4. for($i=0;$i<count;$i++){
  5. //do something
  6. }
最佳化點:減少計算密集型業務    PHP不適合密集型運算的情境    PHP語言特性決定了PHP不適合做大數量級的運算
    PHP適合銜接WebServer與後端服務、UI呈現最佳化點:務必使用帶引號字串做索引值    PHP會將沒有引號的索引值當做常量,產生尋找常量的開銷
    嚴格使用引號作為索引值
  1. <?php
  2. $array=array(
  3. "key"=>"ddd",
  4. "imooc"=>"ddfdfdf"
  5. );
  6. echo $array[key]."\n";//PHP內建錯誤修正功能
雖然$array["key"]和$array[key]的輸出一樣,但是$array["key"]效能更好  PHP周邊問題的效能最佳化最佳化運行環境    Linux運行環境

    檔案儲存體
    資料庫
    緩衝

減少檔案類操作    常見PHP情境的開銷次序:        讀寫磁碟、讀寫資料讀寫記憶體、讀寫網路資料        讀寫記憶體<<讀寫資料庫<讀寫磁碟<讀寫網路資料 最佳化網路請求    問題:對方介面的不穩定因素、網路穩定性    方法:設定逾時時間 
                  1.連線逾時 200ms
                  2.讀逾時  800ms                  3.寫逾時  500ms
            將串列請求並行化
                1.使用curl_multi_*()
                2.使用swoole擴充(最佳)
 壓縮PHP介面輸出(壓縮資料)    使用Gzip即可實現輸出壓縮
壓縮輸出的利弊:    利:利用我們的資料輸出,Client端能更快擷取資料
    弊:壓縮將參數額外的CPU開銷
 緩衝重複計算內容    在多次請求。內容不變的情況可以使用內容緩衝,使用緩衝互用機制(就可以使用靜態化)重疊時間視窗思想旁路方案 PHP效能瓶頸解決方案:    Opcode Cache:PHP擴充(APC、memcache等緩衝擴充)    擴充實現:通過PHP擴充代替原PHP代碼中高頻邏輯
    Runtime最佳化:HHVM等

 



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.