乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP代碼優(yōu)化最佳實(shí)踐

       美好生活谷 2019-04-16

      PHP代碼優(yōu)化最佳實(shí)踐

      編寫好的PHP代碼是創(chuàng)建快速穩(wěn)定Web應(yīng)用的關(guān)鍵一步。從一開(kāi)始就遵循一些最佳實(shí)踐技巧將節(jié)省后期填坑的時(shí)間。

      1. 盡可能的使用PHP的內(nèi)置方法

      只要可以盡可能的使用PHP的內(nèi)置方法,而不是自己編寫相同功能的方法?;c(diǎn)時(shí)間去熟悉和學(xué)習(xí)PHP的內(nèi)置方法,不但可以幫助你更快的編寫代碼,而且可以使你編寫的代碼更高效的運(yùn)行。

      2. 使用Json替代xml

      json_encode()和json_decode() 等PHP的內(nèi)置方法,運(yùn)行速度都非??欤袘?yīng)該優(yōu)先使用Json。如果你無(wú)法避免使用xml,那么請(qǐng)務(wù)必使用正則表達(dá)式而不是DOM操作來(lái)進(jìn)行解析。

      3. 使用緩存技術(shù)

      Memcache特別適用于減少數(shù)據(jù)庫(kù)負(fù)載,而像APC或OPcache這樣的字節(jié)碼緩存引擎在腳本編譯時(shí)可節(jié)省執(zhí)行時(shí)間。

      4. 減少不必要的計(jì)算

      當(dāng)一個(gè)變量會(huì)被多次使用時(shí),一開(kāi)始就計(jì)算好,肯定要比每次使用時(shí)都計(jì)算一遍要更高效。

      5. 使用isset()和empty()

      與count()、strlen()和sizeof()函數(shù)相比,isset()和empty()對(duì)于檢測(cè)一個(gè)變量是否為空等場(chǎng)景更加簡(jiǎn)單和高效。

      6. 減少不必要的類

      如果你不打算重復(fù)使用一個(gè)類或者方法,那么它就沒(méi)什么存在的價(jià)值。而如果你必須要定義和使用一個(gè)類,則需要合理規(guī)劃類中的方法,對(duì)于不是特別公用的方法,盡量將他們放到子類中去,因?yàn)檎{(diào)用子類中的方法,比調(diào)用父類方法速度更快。

      7. 在生產(chǎn)環(huán)境關(guān)閉用作調(diào)試的相關(guān)代碼及錯(cuò)誤報(bào)告

      開(kāi)發(fā)時(shí)打開(kāi)錯(cuò)誤報(bào)告,可以讓你避免很多潛藏的Bug,而一些調(diào)試代碼也有助于你定位Bug,但是當(dāng)代碼部署到生產(chǎn)環(huán)境后,這些錯(cuò)誤報(bào)告和調(diào)試代碼會(huì)拖慢你的程序速度,而且將一些錯(cuò)誤報(bào)告直接顯示給用戶,也具有相當(dāng)?shù)陌踩L(fēng)險(xiǎn)。因此,在生產(chǎn)環(huán)境請(qǐng)關(guān)閉它們。

      8. 關(guān)閉數(shù)據(jù)庫(kù)連接

      當(dāng)使用完畢后,注銷變量和關(guān)閉數(shù)據(jù)庫(kù)連接,可以釋放珍貴的內(nèi)存資源。

      9. 使用聚合函數(shù)減少數(shù)據(jù)庫(kù)查詢

      查詢數(shù)據(jù)庫(kù)時(shí),使用聚合函數(shù),可以減少檢索數(shù)據(jù)庫(kù)的頻率,并且使程序運(yùn)行的更快。

      10. 使用強(qiáng)大的字符串操作函數(shù)

      舉個(gè)例子,str_replace()比preg_replace()要快,而strtr()函數(shù)則比str_replace()函數(shù)快四倍。

      11. 盡量使用單引號(hào)

      如果可能,盡量使用單引號(hào)替代雙引號(hào)。程序運(yùn)行時(shí),會(huì)檢查雙引號(hào)中的變量,這會(huì)拖慢程序的性能。

      12. 嘗試使用恒等運(yùn)算符

      由于“===”僅檢查閉合范圍,因此比使用“==”進(jìn)行比較速度更快。

      PHP代碼之外的性能瓶頸因素

      優(yōu)化代碼當(dāng)然能夠提高PHP的性能。但是,還有一些代碼之外的因素也會(huì)成為PHP的性能瓶頸。這就是為什么程序員需要了解代碼部署的整個(gè)服務(wù)器環(huán)境,這有助于他們?cè)诰帉懘a時(shí)有一定的心理準(zhǔn)備,并能夠在性能出現(xiàn)問(wèn)題時(shí),快速識(shí)別和定位性能瓶頸。以下是你遇到性能瓶頸時(shí)需要檢查的點(diǎn)。

      1. 網(wǎng)絡(luò)帶寬

      如果網(wǎng)絡(luò)帶寬不夠,其傳輸?shù)目倲?shù)據(jù)量將會(huì)受到嚴(yán)重影響,使其成為最明顯的性能瓶頸。

      2. CPU

      如果只是傳輸一些純靜態(tài)的HTML,則不需要消耗很多CPU資源,但是PHP畢竟創(chuàng)建的是動(dòng)態(tài)的應(yīng)用程序,根據(jù)應(yīng)用的需要,你可能至少需要一臺(tái)具備多核處理器的服務(wù)器來(lái)提升PHP代碼的運(yùn)行效率。

      3. 共享內(nèi)存

      缺少共享內(nèi)存可能會(huì)影響進(jìn)程間通信,從而影響程序性能。

      4. 文件系統(tǒng)

      隨著時(shí)間推移,你的文件系統(tǒng)可能會(huì)出現(xiàn)大量磁盤碎片。如果內(nèi)存足夠,利用內(nèi)存作為文件緩存可以加快磁盤的訪問(wèn)速度。

      5. 進(jìn)程管理

      檢查服務(wù)器的進(jìn)程,確保里面沒(méi)有非必要的進(jìn)程。移除哪些不需要的網(wǎng)絡(luò)協(xié)議、病毒掃描軟件、郵件服務(wù)以及硬件驅(qū)動(dòng)。將PHP代碼運(yùn)行在多線程模式,也能提高程序的響應(yīng)時(shí)間。

      6. 相關(guān)的其它服務(wù)

      如果你的應(yīng)用程序還依賴于一些外部服務(wù),那這些外部服務(wù)的性能瓶頸也有可能拖慢你的應(yīng)用。雖然這種情況下你能做的事情不多,但你仍然可以通過(guò)你這一邊的操作來(lái)減輕外部服務(wù)性能瓶頸對(duì)你的影響,例如切換到備用服務(wù)上等。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多