提升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ù)長度不太長,那么可以考慮額外寫一段替換代碼,使得每次傳遞參數(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)掉,不要用長連接。
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ù)長度不太長,那么可以考慮額外寫一段替換代碼,使得每次傳遞參數(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)掉,不要用長連接。
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)文章
PHP網(wǎng)站常見安全漏洞,及相應(yīng)防范措施總結(jié)
這篇文章主要介紹了PHP網(wǎng)站常見安全漏洞,及相應(yīng)防范措施總結(jié),文中相關(guān)措施講解的很清晰,有感興趣的同學(xué)可以學(xué)習(xí)下2021-03-03
php使用strip_tags()去除html標(biāo)簽仍有空白的解決方法
這篇文章主要介紹了php使用strip_tags()去除html標(biāo)簽仍有空白的解決方法,涉及php正則替換的相關(guān)操作技巧,需要的朋友可以參考下2016-07-07
WordPress開發(fā)中的get_post_custom()函數(shù)使用解析
這篇文章主要介紹了WordPress開發(fā)中的get_post_custom()函數(shù)使用解析,get_post_custom()函數(shù)用于獲取自定義字段,需要的朋友可以參考下2016-01-01
php數(shù)據(jù)庫中將base64圖片數(shù)據(jù)轉(zhuǎn)化為可訪問src的方法詳解
后端同學(xué)在對(duì)一些老項(xiàng)目進(jìn)行二次開發(fā)時(shí)候,可能會(huì)遇到一些小的圖片以base64的方式存儲(chǔ)在數(shù)據(jù)庫中的情況,這樣做的好處是這些圖片數(shù)據(jù)一般不會(huì)因?yàn)轫?xiàng)目重新部署而丟失,但是這么做也會(huì)存在一些壞處,本文給大家介紹了php數(shù)據(jù)庫中base64圖片數(shù)據(jù)轉(zhuǎn)化可訪問的src的方法2023-10-10
php常用數(shù)組array函數(shù)實(shí)例總結(jié)【賦值,拆分,合并,計(jì)算,添加,刪除,查詢,判斷,排序】
這篇文章主要介紹了php常用數(shù)組array函數(shù),結(jié)合實(shí)例形式總結(jié)分析了php常用的數(shù)組操作函數(shù),包括數(shù)組的賦值、拆分、合并、計(jì)算、添加、刪除、查詢、判斷、排序等,需要的朋友可以參考下2016-12-12
PHP統(tǒng)計(jì)數(shù)值數(shù)組中出現(xiàn)頻率最多的10個(gè)數(shù)字的方法
這篇文章主要介紹了PHP統(tǒng)計(jì)數(shù)值數(shù)組中出現(xiàn)頻率最多的10個(gè)數(shù)字的方法,涉及php中array_count_values與arsort等方法的相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04

