這篇文章主要介紹php性能優(yōu)化注意點(diǎn)有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
什么情況,可能遇到性能問題:
1.php語法使用的不恰當(dāng)
2.使用php語言做了它不擅長(zhǎng)做的事
3.用php語言連接的服務(wù)不給力
4.php自身的短板
5.我也不知道的問題
一般情況:php性能問題不超過二分之一(一般30%~40%)
php性能問題解決方向:
php語言級(jí)的性能優(yōu)化—>php周邊問題的性能優(yōu)化(連接的服務(wù),網(wǎng)絡(luò)環(huán)境)—>php語言自身分析和優(yōu)化
(php語言級(jí))
優(yōu)化點(diǎn):少寫代碼,多用php自身能力
問題:自寫代碼冗余較多,可讀性不佳,導(dǎo)致性能低
為什么低:php代碼需要編譯解析為底層語言,這一過程每次請(qǐng)求都會(huì)處理一遍,開銷大
方法:多使用php內(nèi)置變量、常量、函數(shù)
優(yōu)化點(diǎn):php內(nèi)置函數(shù)的性能優(yōu)劣
情況描述:php內(nèi)置函數(shù),之間依然存在快慢差異
建議:多去了解php內(nèi)置函數(shù)的時(shí)間復(fù)雜度
優(yōu)化點(diǎn):盡可能少用魔法函數(shù)
情況描述:php提供的魔法函數(shù),性能不佳
為什么性能低:為了為php程序員省事,php語言為你做了很多
好的方法:盡可能規(guī)避使用php魔法函數(shù)
優(yōu)化點(diǎn):產(chǎn)生額外開銷的錯(cuò)誤抑制符@
實(shí)際邏輯:在代碼開始前,設(shè)置報(bào)錯(cuò)級(jí)別高,結(jié)束后,再回復(fù)設(shè)置報(bào)錯(cuò)級(jí)別。增加Opcode,忽略報(bào)錯(cuò)
優(yōu)化點(diǎn):合理使用內(nèi)存
情況描述:php有內(nèi)存回收機(jī)制保底,但也請(qǐng)小心使用內(nèi)存
建議:利用unset()及時(shí)釋放不適用的內(nèi)存(注:unset()出現(xiàn)注銷不掉的情況)
優(yōu)化點(diǎn):盡量少的使用正則表達(dá)式
情況描述:正在表達(dá)式的回溯開銷較大,“沒有金剛鉆別攬?zhí)沾苫睢?br/>建議:利用字符串處理函數(shù),實(shí)現(xiàn)相同邏輯
優(yōu)化點(diǎn):避免在循環(huán)內(nèi)做運(yùn)算
情況描述:循環(huán)內(nèi)的計(jì)算式將會(huì)被重復(fù)計(jì)算
<?php $str="hello world"; 阿 //strlen($str)放在外面 for($i=0;$i<strlen($str);$i++){ //do something } ?>
優(yōu)化點(diǎn):減少計(jì)算密集型業(yè)務(wù)
情況描述:php不適合密集型運(yùn)算的場(chǎng)景
為什么?php語言特性決定了php不適合做大數(shù)據(jù)量運(yùn)算
php適合場(chǎng)景:適合銜接Webserver與后端服務(wù)、UI呈現(xiàn)
優(yōu)化點(diǎn):務(wù)必使用帶引號(hào)字符串做鍵值
情況描述:php會(huì)將沒有引號(hào)的鍵值當(dāng)作常量,產(chǎn)生查找常量的開銷
建議:嚴(yán)格使用引號(hào)作為鍵值
--------------------------------------------
(php周邊問題的性能優(yōu)化)-
運(yùn)行環(huán)境,文件儲(chǔ)存,數(shù)據(jù)庫(kù),緩存,網(wǎng)絡(luò)
減少文件類操作
常見php場(chǎng)景的開銷次序:
讀寫磁盤、讀寫數(shù)據(jù)庫(kù)、讀寫內(nèi)存、讀寫網(wǎng)絡(luò)數(shù)據(jù)
讀寫內(nèi)存<<讀寫數(shù)據(jù)庫(kù)<讀寫磁盤<讀寫網(wǎng)絡(luò)數(shù)據(jù)
優(yōu)化網(wǎng)絡(luò)請(qǐng)求
網(wǎng)絡(luò)請(qǐng)求的坑:
1.對(duì)方接口的不確定因素
2.網(wǎng)絡(luò)穩(wěn)定性
如何優(yōu)化網(wǎng)絡(luò)請(qǐng)求?
1、設(shè)置超時(shí)時(shí)間
a)連接超時(shí) 200ms
b)讀超時(shí) 800ms
c)寫超時(shí) 500ms
2、將串行請(qǐng)求并行化
a)使用curl_multi_*()
b)使用swoole擴(kuò)展
壓縮php接口輸出
緩存重復(fù)計(jì)算內(nèi)容
什么情況下做輸出內(nèi)容的緩存?
多次請(qǐng)求,內(nèi)容不變情況
重疊時(shí)間窗口思想
旁路方案
分析php自身分析和優(yōu)化:
用工具測(cè)試
PHP性能瓶頸解決方法:
Opcode cache(代碼編譯的最后一個(gè)環(huán)節(jié)進(jìn)行緩存)PHP擴(kuò)展APC做Opcode緩存用的
補(bǔ)充壓力測(cè)試軟件使用說明:
Ab -h
apache Benchmark(ab)由Apache提供的壓力測(cè)試軟件,安裝apache服務(wù)器時(shí)會(huì)自帶該壓測(cè)軟件
使用:./ab -n1000 -c100 http://www.baidu.com/
-n請(qǐng)求數(shù) -c并發(fā)數(shù) url目標(biāo)壓測(cè)地址
以上是“php性能優(yōu)化注意點(diǎn)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標(biāo)題:php性能優(yōu)化注意點(diǎn)有哪些-創(chuàng)新互聯(lián)
本文來源:http://www.rwnh.cn/article6/dohhig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、電子商務(wù)、網(wǎng)站制作、關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容