一個php項目,或者說是產品,從無到有,從使用者少,到使用者達到幾萬層級,甚至更多。很多時候會遇到效能的瓶頸,從項目快速開發,不注重sql語句,到sql語句最佳化;從無緩衝,到加入緩衝,快取服務器從一台到多台等等。
現在,有時候會有些迷茫,雖然隨著不斷的最佳化,效能逐漸提升了。但是最佳化後提升了多少個百分點,如何去檢測,如何去記錄,都是個問題。
求教各位大大,感謝。
回複內容:
一個php項目,或者說是產品,從無到有,從使用者少,到使用者達到幾萬層級,甚至更多。很多時候會遇到效能的瓶頸,從項目快速開發,不注重sql語句,到sql語句最佳化;從無緩衝,到加入緩衝,快取服務器從一台到多台等等。
現在,有時候會有些迷茫,雖然隨著不斷的最佳化,效能逐漸提升了。但是最佳化後提升了多少個百分點,如何去檢測,如何去記錄,都是個問題。
求教各位大大,感謝。
xhprof 能看到代碼執行各處耗時
還有就是用benchmark 工具,是必要的
效能瓶頸主要是 io,重點關注這
可以採用 Xdebug 剖析器運行狀態及用FPM 啟用 slow_log
用 xhprof 看報告,然後挨個最佳化。
可以看看我寫的幾篇部落格,PHP最佳化建議,測試載入器等,可能對你有用,http://www.chenglin.name/category/php/optimization
可以從編碼細則,變數/資料緩衝,Opcode緩衝,資料庫等方面考慮。可以參考《高效能PHP應用開發》這本書,講了從哪些方面最佳化,如何最佳化,還有一些測試載入器等。
來潑冷水的,php再怎麼最佳化效能極限也在那放著,只要不是有重大邏輯問題(例如擷取個小東西迴圈幾百下),php是不需要最佳化的,重點是在sql查詢及cache server。
效能提升主要來自於3個方面
1.使用者體驗
2.邏輯
3.資料
如果是"產品"首先要把使用者體驗放在前面,第二是邏輯層的最佳化(教育程式員)
第三個是資料最佳化
當然前面說的都是關於技術方面的最佳化,比如 xdebug 啊 benchmark等偵查工具進行分析..
建議樓主修改成"Web效能最佳化"如何?
- 前端最佳化 http://www.cnblogs.com/y0umer/archive/2012/02/17/2809467.html
- 服務端最佳化 http://www.cnblogs.com/y0umer/archive/2011/10/24/2809490.html