您好,登錄后才能下訂單哦!
解決php的性能問題?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
面對(duì)一個(gè)性能問題是,第一步永遠(yuǎn)是找到問題產(chǎn)生的原因,而不是去看技巧列表。搞明白產(chǎn)生瓶頸的原因,找到目標(biāo)并且實(shí)施修復(fù),然后再重新測試。查找瓶頸只是萬里長征的第一步,這里有些常用技巧,希望對(duì)最重要的第一步找到瓶頸能有所幫助。
● 使用監(jiān)控方法(比如監(jiān)控寶),進(jìn)行benchmark和監(jiān)控,網(wǎng)絡(luò),特別是網(wǎng)絡(luò)狀況瞬息萬變,做得好的話5分鐘就可以找到瓶頸。
● 剖析代碼。必須了解那部分代碼耗時(shí)最多,在這些地方多多關(guān)注。
● 想找到瓶頸,請檢查每個(gè)資源請求(比如,網(wǎng)絡(luò)、CPU、內(nèi)存、共享內(nèi)存、文件系統(tǒng)、進(jìn)程管理、網(wǎng)絡(luò)連接等等……)
● 先對(duì)迭代結(jié)構(gòu)和復(fù)雜的代碼進(jìn)行benchmark
● 在在真實(shí)負(fù)載下用真實(shí)數(shù)據(jù)進(jìn)行真實(shí)測試,當(dāng)然,如果可以最好用產(chǎn)品服務(wù)器。
緩存 (Caching)
有些人認(rèn)為緩存是解決性能問題最有效的辦法之一,試試這些:
● 使用OPCODE(操作碼)緩存,這樣腳本就不會(huì)在每次訪問時(shí)重新編譯一次。比如:啟用Windows平臺(tái)上的windows緩存擴(kuò)展??梢跃彺鎜pcode,文件,相對(duì)路徑,session數(shù)據(jù)和用戶數(shù)據(jù)。
● 考慮在多服務(wù)器環(huán)境下使用分布式緩存
● 在調(diào)用imap_header()之前先調(diào)用imap_headers()
編譯 vs. 解釋(Compiling vs. Interpreting)
將PHP源碼編譯成機(jī)器碼。動(dòng)態(tài)解釋執(zhí)行同樣的編譯,但它是按行執(zhí)行的。編譯為opcode是折中選擇,它可以將PHP源碼翻譯為opcode,之后opcode再轉(zhuǎn)為機(jī)器碼。以下為關(guān)于編譯與解釋的相關(guān)技巧:
● 上線之前將PHP代碼編譯為機(jī)器碼。opcode緩存盡管并不是最好的選擇,但依舊比解釋型來得強(qiáng)?;蛘撸紤]將PHP代碼編譯成一個(gè)C擴(kuò)展。
● PHP的opcode編譯器(bcompiler)還不能在產(chǎn)品環(huán)境中使用
關(guān)于解決php的性能問題問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。