PHP項目性能優化的三個層次
- PHP語言層級
- PHP周邊(服務器,數據庫,webserver)
- PHP底層
語言層級
- 儘可能使用PHP原生函數和常量,類
若是要實現的功能有原生PHP函數,則不要本身用PHP實現
- 儘可能使用性能更高的內置函數
好比isset和array_key_exists均可以使用,則使用isset
- 儘可能不要使用錯誤抑制符@
- 不要使用PHP處理cpu密集的業務,交給適合的語言去處理
- 減小io操做,好比在一次請求中要生成多條日誌,則儘可能緩存一次寫入
- 代碼儘可能向上兼容,即儘量的使用PHP最新版本,好比generaotr實現的range等,數組短語法
周邊(展開則至關龐大了)
- Linux內核優化,硬件提高(ssd硬盤,加內存)
- 減小跨網絡請求
- MySQL 索引使用,NoSQL+MySQL的配合使用,MySQL主從等
- Nginx 的配置優化
- PHP-FPM配置優化
- 使用PHP的最新版本,目前PHP 5.6,今年即將會來的PHPNG(PHP7)
- 使用xhprof分析項目源碼,找出瓶頸進行優化
這部份內容須要繼續學習研究php
PHP底層
- 使用opcode擴展 緩存PHP的opcode代碼,減小PHP的編譯過程
- CPU密集或者複雜功能使用PHP的pecl擴展(swoole等優秀擴展的使用)
- HHVM,百度再用,不過仍是讓咱們坐等PHPNG的問世,有PHPNG,HHVM就不是必須的選擇了
固然良好的編碼風格(目前PSR很流行 http://www.php-fig.org/),優雅的代碼實現也很是重要
寫代碼,不要僅僅爲了實現目的和功能,還要有詩人的情懷,儘可能打磨代碼,精煉,如賈島之推敲,追求本身代碼的卓越web
隨着項目的發展,就會有架構方面的變動,來應對更大的併發和請求數據庫