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