php項目優化筆記

大體上我們分爲3部分:php語言級性能優化;下面我們一一介紹
在優化之前呢,我們先說一下壓測
這裏用apache的ab模塊
命令:ab -n100 -c10 網址
-n請求次數 -c併發數
壓測的結果我們主要看兩個參數requests per second(每秒處理請求數) 和time per request(處理一個請求花費時間)

一. php語言級性能優化

  1. 儘量使用php內置函數,如數組合並之類的,並且選擇高效的php函數,它主要加快php掃描轉譯爲zend時間
  • 較運行方法:time php 文件 可以查看php文件運行時間;也可以在運行之前和之後分別獲取一下時間
  1. 減少php魔術方法的使用
  2. 儘量少的使用@符,其原理即在使用的前行關閉error_display;後行再開啓;增加消耗,使用try catch錯誤機制拋出
  3. 及時unset掉不用的數組和變量
  4. 少用正則,可以使用字符串函數
  5. 循環時的條件儘量不要運算

二.php周邊問題

  • 主要時一下幾個方面會影響性能
  1. linux運行環境
  2. 文件存儲
  3. 數據庫
  4. 緩存
  5. 網絡
  • 常見的php場景開銷次序:
    讀寫內存 << 讀寫數據庫 < 讀寫磁盤 < 網絡請求;所以我們儘量避免php直接操作磁盤
  1. 這裏來說說網絡請求優化
  • 設置超時時間:主要有連接超時(建議200ms),讀超時(800ms),寫超時(500ms)
  • 將串行化改爲並行化(使用一些php擴展,理論上就是增加旁路或者使用時間窗口重疊,但這樣的前提是後面的步驟不依賴於前一步的結果)
  1. 提高接口速度
  • 使用緩存,靜態化

三. php性能分析工具

這裏使用XHprof工具進行分析
安裝及使用:https://www.cnblogs.com/dannywang/p/9243682.html
使用php --ri 查看擴展是否搭建

  • 在項目中使用:
    在入口文件開始寫入xhprof_enable();
    結束寫入
$xhprof_data = xhprof_disable();
include_once '/var/www/html/xhprof/xhprof_lib/utils/xhprof_lib.php';
include_once '/var/www/html/xhprof/xhprof_lib/utils/xhprof_runs.php';
$xhprof_runs = new \XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, 'your_project');//$run_id 就是產生的文件

生成的報告主要看幾個參數
Function Name(方法名);Calls(函數被調用次數);Incl. Wall Time (執行此方法和後面程序所需時間,單位微秒); Exel. Wall Time(此方法執行所需時間);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章