本文做者:HelloDeveloper前端
在 3 月 10 日由 @百度主辦、@InfoQ 策劃組織和實施的第 24 期百度技術沙龍活動上,來自百度 PHP 高級顧問,PHP 語言開發組成員惠新宸(@laruence)、騰訊網媒產品技術部高級工程師付超羣(@付超羣)分別分享了各自在 PHP 性能優化上取得的成果及經驗,話題涉及「PHP5.4 新特性與性能優化」,以及「高性能 LAMP 程序設計」等。本文將對他們各自的分享作下簡單的回顧,同時提供相關資料的下載。程序員
主題一:PHP 性能優化實踐(微盤下載講稿,觀看視頻)web
來自百度 PHP 高級顧問,PHP 語言開發組成員惠新宸第一個爲你們分享,演講內容主要包括 PHP 5.X 版本性能對比,PHP 5.4 新特性以及經常使用的優化技巧等。惠新宸首先分分享了 PHP5.4 所帶來的主要新特性:數據庫
Traits後端
Built-in web server性能優化
Array de-referencingcookie
Class member access on instantiation架構
Shortened array syntax異步
Binary number format性能
本次活動主要分享到 5.3 到 5.4 版本的優化策略。惠新宸提到了 Runtime Binding Cache 策略,這樣作的好處就是:
減小符號查找次數
基於 Literal Table
一次查找,就 Cache 起來
多態帶來了意外
此外,亦可經過 Internal String 策略具備如下特色:
編譯期已知的字符串
對於多個 Constant String,只保存一份
使用比較 Char*pointer 相等來代替 strcmp
避免了 estrdup 和 efree
預先計算 Hash Value
最後,惠新宸還提到了 Property Directly Access,Zend Signal,Request Startup/Shutdown,Ternary 及 FastCGI SAPI Optimization 等策略。
主題二:高性能 LAMP 程序設計(微盤下載講稿,觀看視頻)
騰訊網媒產品技術部高級工程師付超羣第二個爲你們分享,主要內容分爲 PHP 篇、WebServer 篇、數據庫篇、經常使用組建篇、架構篇及前端篇等幾部分。付超羣首先講解了在使用 Apache 和 Ngix 時的一些技巧與經驗,如只加載用到的模塊、mpm 的選擇以及 CPU 親和性等,他提到在使用 MySQL 時,經過如下策略可對性能有所提高:
動靜分離
分庫分表
良好的索引 &Explain
主從同步,經過從庫來擴展讀
儘可能 Cache,減小 SQL 操做
批量操做 & 隊列
此外,付超羣還強調訛傳比性能更可怕,好比:left join 都很慢、like 用不到索引、char 必定比 varchar 好等。在經常使用組件部分,付超羣介紹了消息隊列的用處,好比能夠異步處理耗時操做(發郵件、發微薄等),這些都可經過Memcacheq、beanstalkd和RabbitMQ等開源項目實現。在涉及全文檢索類操做時,可使用scws處理中文分詞,使用coreseek進行集成等。在介紹架構對性能產生的影響時,付超羣建議要遵循如下原則:
先抗住,再優化
過分設計比不設計更齷齪
越簡單越好
如非必要,不要引入
層次清晰
良好的監控預警
接下來付超羣向你們分享了自選股產品和接口平臺的構建經驗以及使用狀況。分享的最後,付超羣還說起了在前端上的一些優化技巧:
CSS Sprite
對圖片和頭像等採用 Lazy Loading
合併請求
避免重定向
Gzip
採用 CDN
靜態文件使用無 cookie 域名
CSS 放頂部,JS 放底部(一般狀況下)
前端在 PHP 性能優化中如此重要,怪不得連 PHP 之父Rasmus Lerdorf都會認爲:
PHP is rarely the bottleneck, 80-90% front-end。
Open Space(開放式討論環節)
和以往的環節同樣,爲了讓參會者可以有更多的時間進行相互的交流,本次活動依然設置了 Open Space(開放式討論)環節。本次還邀請到了國內問答網站 SegmentFault 到場分享,SegmentFault技術負責人祁寧和你們分享了做爲國內針對程序員問答社區所遇到的技術問題和經驗。
會後,一些參會者也經過新浪微博分享了他們的參會感覺:
@xy26:懶加載是一種不錯的 Web 呈現方式。
@懶桃兒吃桃兒:跨 IDC 專線進行數據同步,基礎設施拼財力呀。
@陳五十:性能優化無止境,做爲一個後端工程師,付超羣的建議都很須要注意。
@SweetyDong:超羣講的對工做比較有幫助。
@吳佰清:最後總結,5.4 相對 5.3 帶來了多大提高,主要針對 OO 來作提高,最高提高 48%。不建議升級 5.4,APC 會出現兼容性問題。
@許浩 -sean:PHP 5.4 新特性與性能優化,@Laruence 視野很開闊,收穫不小。
@我愛兒童團 - 楊京:這個測試比較乾貨,要看看,測一下,一時半會仍是不要升級,要穩定,不要着急嚐鮮。
@大皮:內核級別的優化,有點深,這就是差距,好好學習吧。
@一個飛翔的魚:PHP 5.4 的性能真是愈來愈好了,今天真是瞭解了很多內部的細節。