提升PHP性能的21種方法介紹
更新時(shí)間:2013年06月25日 16:01:05 作者:
本篇文章是對(duì)提升PHP性能的21種方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
1.用單引號(hào)來包含字符串要比雙引號(hào)來包含字符串更快一些。因?yàn)镻HP會(huì)在雙引號(hào)包圍的字符串中搜尋變量,單引號(hào)則不會(huì)。
2.如果能將類的方法定義成static,就盡量定義成static,它的速度會(huì)提升將近4倍。
3.$row['id'] 的速度是$row[id]的7倍。
4.echo 比 print 快,并且使用echo的多重參數(shù)(譯注:指用逗號(hào)而不是句點(diǎn))代替字符串連接,比如echo $str1,$str2。
5.在執(zhí)行for循環(huán)之前確定最大循環(huán)數(shù),不要每循環(huán)一次都計(jì)算最大值,最好運(yùn)用foreach代替。
6.注銷那些不用的變量尤其是大數(shù)組,以便釋放內(nèi)存。
7.盡量避免使用__get,__set,__autoload。
8.require_once()代價(jià)昂貴。
9.include文件時(shí)盡量使用絕對(duì)路徑,因?yàn)樗苊饬薖HP去include_path里查找文件的速度,解析操作系統(tǒng)路徑所需的時(shí)間會(huì)更少。
10.如果你想知道腳本開始執(zhí)行(譯注:即服務(wù)器端收到客戶端請(qǐng)求)的時(shí)刻,使用$_SERVER[‘REQUEST_TIME']要好于time()。
11.函數(shù)代替正則表達(dá)式完成相同功能。
12.str_replace函數(shù)比preg_replace函數(shù)快,但strtr函數(shù)的效率是str_replace函數(shù)的四倍。
13.如果一個(gè)字符串替換函數(shù),可接受數(shù)組或字符作為參數(shù),并且參數(shù)長(zhǎng)度不太長(zhǎng),那么可以考慮額外寫一段替換代碼,使得每次傳遞參數(shù)是一個(gè)字符,而不是只寫一行代碼接受數(shù)組作為查詢和替換的參數(shù)。
14.使用選擇分支語句(譯注:即switch case)好于使用多個(gè)if,else if語句。
15.用@屏蔽錯(cuò)誤消息的做法非常低效,極其低效。
16.打開apache的mod_deflate模塊,可以提高網(wǎng)頁的瀏覽速度。
17.數(shù)據(jù)庫連接當(dāng)使用完畢時(shí)應(yīng)關(guān)掉,不要用長(zhǎng)連接。
18.錯(cuò)誤消息代價(jià)昂貴。
19.在方法中遞增局部變量,速度是最快的。幾乎與在函數(shù)中調(diào)用局部變量的速度相當(dāng)。
20.遞增一個(gè)全局變量要比遞增一個(gè)局部變量慢2倍。
21.遞增一個(gè)對(duì)象屬性(如:$this->prop++)要比遞增一個(gè)局部變量慢3倍。
2.如果能將類的方法定義成static,就盡量定義成static,它的速度會(huì)提升將近4倍。
3.$row['id'] 的速度是$row[id]的7倍。
4.echo 比 print 快,并且使用echo的多重參數(shù)(譯注:指用逗號(hào)而不是句點(diǎn))代替字符串連接,比如echo $str1,$str2。
5.在執(zhí)行for循環(huán)之前確定最大循環(huán)數(shù),不要每循環(huán)一次都計(jì)算最大值,最好運(yùn)用foreach代替。
6.注銷那些不用的變量尤其是大數(shù)組,以便釋放內(nèi)存。
7.盡量避免使用__get,__set,__autoload。
8.require_once()代價(jià)昂貴。
9.include文件時(shí)盡量使用絕對(duì)路徑,因?yàn)樗苊饬薖HP去include_path里查找文件的速度,解析操作系統(tǒng)路徑所需的時(shí)間會(huì)更少。
10.如果你想知道腳本開始執(zhí)行(譯注:即服務(wù)器端收到客戶端請(qǐng)求)的時(shí)刻,使用$_SERVER[‘REQUEST_TIME']要好于time()。
11.函數(shù)代替正則表達(dá)式完成相同功能。
12.str_replace函數(shù)比preg_replace函數(shù)快,但strtr函數(shù)的效率是str_replace函數(shù)的四倍。
13.如果一個(gè)字符串替換函數(shù),可接受數(shù)組或字符作為參數(shù),并且參數(shù)長(zhǎng)度不太長(zhǎng),那么可以考慮額外寫一段替換代碼,使得每次傳遞參數(shù)是一個(gè)字符,而不是只寫一行代碼接受數(shù)組作為查詢和替換的參數(shù)。
14.使用選擇分支語句(譯注:即switch case)好于使用多個(gè)if,else if語句。
15.用@屏蔽錯(cuò)誤消息的做法非常低效,極其低效。
16.打開apache的mod_deflate模塊,可以提高網(wǎng)頁的瀏覽速度。
17.數(shù)據(jù)庫連接當(dāng)使用完畢時(shí)應(yīng)關(guān)掉,不要用長(zhǎng)連接。
18.錯(cuò)誤消息代價(jià)昂貴。
19.在方法中遞增局部變量,速度是最快的。幾乎與在函數(shù)中調(diào)用局部變量的速度相當(dāng)。
20.遞增一個(gè)全局變量要比遞增一個(gè)局部變量慢2倍。
21.遞增一個(gè)對(duì)象屬性(如:$this->prop++)要比遞增一個(gè)局部變量慢3倍。
您可能感興趣的文章:
- 深入理解PHP中的static和yield關(guān)鍵字
- PHP yield關(guān)鍵字功能與用法分析
- PHP5.5新特性之yield理解與用法實(shí)例分析
- php和C#的yield迭代器實(shí)現(xiàn)方法對(duì)比分析
- 分享五個(gè)PHP7性能優(yōu)化提升技巧
- PHP開啟opcache提升代碼性能
- 逐步提升php框架的性能
- PHP 7安裝使用體驗(yàn)之性能大提升,兼容性強(qiáng),擴(kuò)展支持不夠(升級(jí)PHP要謹(jǐn)慎)
- 提高PHP編程效率 引入緩存機(jī)制提升性能
- 使用Huagepage和PGO來提升PHP7的執(zhí)行性能
- php使用yield對(duì)性能提升的測(cè)試實(shí)例分析
相關(guān)文章
利用客戶端緩存對(duì)網(wǎng)站進(jìn)行優(yōu)化的原理分析
你的網(wǎng)站在并發(fā)訪問很大并且無法承受壓力的情況下,你會(huì)選擇如何優(yōu)化?2008-09-09PHP使用get_headers函數(shù)判斷遠(yuǎn)程文件是否存在的方法
這篇文章主要介紹了PHP使用get_headers函數(shù)判斷遠(yuǎn)程文件是否存在的方法,以實(shí)例形式分析了使用get_headers函數(shù)對(duì)遠(yuǎn)程文件是否存在進(jìn)行判斷的方法,以及針對(duì)重定向的排除方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11PHP實(shí)現(xiàn)對(duì)png圖像進(jìn)行縮放的方法(支持透明背景)
這篇文章主要介紹了PHP實(shí)現(xiàn)對(duì)png圖像進(jìn)行縮放的方法(支持透明背景),可實(shí)現(xiàn)php針對(duì)png圖像的縮放功能,且支持透明背景,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07php析構(gòu)函數(shù)的簡(jiǎn)單使用說明
與構(gòu)造函數(shù)相反,在PHP5中,可以定義一個(gè)名為__destruct()的函數(shù),稱之為PHP5析構(gòu)函數(shù),PHP將在對(duì)象在內(nèi)存中被銷毀前調(diào)用析構(gòu)函數(shù),使對(duì)象在徹底消失之前完成一些工作。對(duì)象在銷毀一般可以通過賦值為null實(shí)現(xiàn)。2015-08-08php使用preg_match()函數(shù)驗(yàn)證ip地址的方法
這篇文章主要介紹了php使用preg_match()函數(shù)驗(yàn)證ip地址的方法,涉及php針對(duì)數(shù)字及字符串的正則匹配操作相關(guān)技巧,需要的朋友可以參考下2017-01-01PHP實(shí)現(xiàn)的Redis多庫選擇功能單例類
這篇文章主要介紹了PHP實(shí)現(xiàn)的Redis多庫選擇功能單例類,結(jié)合實(shí)例形式分析了php采用單例模式實(shí)現(xiàn)redis數(shù)據(jù)庫的多庫選擇功能,需要的朋友可以參考下2017-07-07