php入門--PHP語言級性能優(yōu)化

在PHP優(yōu)化前可以使用apache Benchmark來進(jìn)行壓力測試萨惑,查看當(dāng)前服務(wù)器的性能

ab -n 100 -c 10 https://www.baidu.com/


Server Software:        bfe/1.0.8.18
Server Hostname:        www.baidu.com
Server Port:            443
SSL/TLS Protocol:       TLSv1,AES128-SHA,2048,128

Document Path:          /
Document Length:        227 bytes

Concurrency Level:      10
Time taken for tests:   1.406 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      103321 bytes
HTML transferred:       22700 bytes
Requests per second:    71.14 [#/sec] (mean)  (百度服務(wù)的每秒請求數(shù))
Time per request:       140.569 [ms] (mean)
Time per request:       14.057 [ms] (mean, across all concurrent requests)     百度服務(wù)的平均每個請求需要的時間(14.057ms)
Transfer rate:          71.78 [Kbytes/sec] received

有以上數(shù)據(jù)可以看出,若要優(yōu)化PHP其實(shí)最重要的是Requests per secondTime per request這兩個參數(shù)钾麸,其中Requests per second越大越好邪乍,Time per request越小越好。而通過不斷的優(yōu)化可以繼續(xù)執(zhí)行ab操作來觀察這兩個參數(shù)西篓,來查看優(yōu)化效果议谷。

優(yōu)化點(diǎn):少寫代碼炉爆,多用PHP自身能力

性能問題:
自身代碼冗余較多,可讀性不佳,并且性能低芬首。
為什么性能低:
PHP代碼需要編譯解析為底層語言赴捞,這一過程每次請求都會處理一遍,開銷大衩辟。
好的方法:
多使用 PHP內(nèi)置的函數(shù) 方法 變量

這就要求開發(fā)盡可能多的掌握內(nèi)置函數(shù) 和 常量螟炫。(另外要知道內(nèi)置函數(shù)也是存在有性能差異的,因此需要盡可能多的了解內(nèi)置函數(shù)的時間復(fù)雜度的)

優(yōu)化點(diǎn):少用魔法函數(shù)

為什么低艺晴?:
為了給PHP程序員省事昼钻,PHP語言做了很多。
好的方法:
盡可能避免使用PHP魔法函數(shù)

優(yōu)化點(diǎn):產(chǎn)生額外開銷的錯誤抑制符@
PHP提供的錯誤抑制符只是為了方便“懶人”
@的實(shí)際邏輯:
在代碼開始前封寞,結(jié)束后然评,增加Opcode,忽略報錯
好的建議:
盡量不使用@錯誤抑制符

優(yōu)化點(diǎn):合理使用內(nèi)存
情況:
PHP有內(nèi)存回收機(jī)制狈究,但也要小心使用內(nèi)存碗淌。
好的建議:
利用unset()及時釋放不使用的內(nèi)存(注:unset()出現(xiàn)注銷不掉的情況)
優(yōu)化點(diǎn):少使用正則表達(dá)式
情況:
正則表達(dá)式的回溯開銷較大,“不要亂用”

優(yōu)化點(diǎn):避免在循環(huán)內(nèi)做運(yùn)算
情況描述:
循環(huán)哪的計算式將會被重復(fù)計算
代碼示例:

<?php
$str = "hello world";
for($i = 0;$i<strlen($str);$i++){
      //do something
}

優(yōu)化點(diǎn):減少計算密集型業(yè)務(wù)
情況:
PHP不適合密集型運(yùn)算的場景
為什么:
PHP是在C語言之上的抖锥,語言特性決定了PHP不適合做大數(shù)據(jù)運(yùn)算(都需要C來實(shí)現(xiàn))
PHP適用場景:
適合銜接WebService與后端服務(wù)亿眠,UI呈現(xiàn)。

優(yōu)化點(diǎn):少用魔法函數(shù)

為什么低磅废?:
為了給PHP程序員省事纳像,PHP語言做了很多。
好的方法:
盡可能避免使用PHP魔法函數(shù)

優(yōu)化點(diǎn):務(wù)必使用帶引號的字符串做鍵值

情況:
PHP會將沒有引號的鍵值當(dāng)作常量拯勉,產(chǎn)生查找常量的開銷竟趾。
因?yàn)槿舨粚憽啊保瑒t會先查找define的常量表宫峦,當(dāng)常量表中找不到岔帽,才會作為key值去數(shù)組中查找,多了常量表的查詢导绷。如果有意外的常量定義犀勒,也會影響代碼的健壯性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诵次,一起剝皮案震驚了整個濱河市账蓉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逾一,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肮雨,死亡現(xiàn)場離奇詭異遵堵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門陌宿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锡足,“玉大人,你說我怎么就攤上這事壳坪〔暗茫” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵爽蝴,是天一觀的道長沐批。 經(jīng)常有香客問我,道長蝎亚,這世上最難降的妖魔是什么九孩? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮发框,結(jié)果婚禮上躺彬,老公的妹妹穿的比我還像新娘。我一直安慰自己梅惯,他們只是感情好宪拥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铣减,像睡著了一般她君。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上徙歼,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天犁河,我揣著相機(jī)與錄音,去河邊找鬼魄梯。 笑死桨螺,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酿秸。 我是一名探鬼主播灭翔,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辣苏!你這毒婦竟也來了肝箱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤稀蟋,失蹤者是張志新(化名)和其女友劉穎煌张,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體退客,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骏融,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年链嘀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片档玻。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡怀泊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出误趴,到底是詐尸還是另有隱情霹琼,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布凉当,位于F島的核電站枣申,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纤怒。R本人自食惡果不足惜糯而,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泊窘。 院中可真熱鬧熄驼,春花似錦、人聲如沸烘豹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽携悯。三九已至祭芦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間憔鬼,已是汗流浹背龟劲。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轴或,地道東北人昌跌。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像照雁,于是被迫代替她去往敵國和親蚕愤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容