亚洲国产综合日韩AV在线|午夜精品视频在线观看一区|亚洲国产精品看片在线观看|av网站手机免费在线观看|综合免费一区二区|a级国产乱理伦片在线观看|在线欧美熟乱视频第一页

亚洲国产综合日韩AV在线|午夜精品视频在线观看一区|亚洲国产精品看片在线观看|av网站手机免费在线观看|综合免费一区二区|a级国产乱理伦片在线观看|在线欧美熟乱视频第一页

合肥做網(wǎng)站,選擇瘋狗科技,專(zhuān)業(yè)、敬業(yè)的合肥網(wǎng)絡(luò )公司
首頁(yè) > 交互 > 詳情

PHP開(kāi)發(fā)程序應該注意的42個(gè)優(yōu)化準則

2018-06-20 14:22:24   來(lái)源:互聯(lián)網(wǎng)   瀏覽:  次
PHP 獨特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng )新的語(yǔ)法。它可以比 CGI或者Perl更快速的執行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的

PHP 獨特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng )新的語(yǔ)法。它可以比 CGI或者Perl更快速的執行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多。下面介紹了PHP開(kāi)發(fā)程序應該注意的42個(gè)優(yōu)化準則。

1.如果一個(gè)方法可靜態(tài)化,就對它做靜態(tài)聲明。速率可提升至4倍。

2.echo 比 print 快。

3.使用echo的多重參數(譯注:指用逗號而不是句點(diǎn))代替字符串連接。

4.在執行for循環(huán)之前確定最大循環(huán)數,不要每循環(huán)一次都計算最大值。

5.注銷(xiāo)那些不用的變量尤其是大數組,以便釋放內存。

6.盡量避免使用__get,__set,__autoload。

7.require_once()代價(jià)昂貴。

8.在包含文件時(shí)使用完整路徑,解析操作系統路徑所需的時(shí)間會(huì )更少。

9.如果你想知道腳本開(kāi)始執行(譯注:即服務(wù)器端收到客戶(hù)端請求)的時(shí)刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。

10.函數代替正則表達式完成相同功能。

11.str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。

12.如果一個(gè)字符串替換函數,可接受數組或字符作為參數,并且參數長(cháng)度不太長(cháng),那么可以考慮額外寫(xiě)一段替換代碼,使得每次傳遞參數是一個(gè)字符,而不是只寫(xiě)一行代碼接受數組作為查詢(xún)和替換的參數。

13.使用選擇分支語(yǔ)句(譯注:即switch case)好于使用多個(gè)if,else if語(yǔ)句。

14.用@屏蔽錯誤消息的做法非常低效。

15.打開(kāi)apache的mod_deflate模塊。

16.數據庫連接當使用完畢時(shí)應關(guān)掉。

17.$row[‘id’]的效率是$row[id]的7倍。

18.錯誤消息代價(jià)昂貴。

19.盡量不要在for循環(huán)中使用函數,比如for ($x=0; $x prop++)要比遞增一個(gè)局部變量慢3倍。

23.遞增一個(gè)未預定義的局部變量要比遞增一個(gè)預定義的局部變量慢9至10倍。

24.僅定義一個(gè)局部變量而沒(méi)在函數中調用它,同樣會(huì )減慢速度(其程度相當于遞增一個(gè)局部變量)。PHP大概會(huì )檢查看是否存在全局變量。

25.方法調用看來(lái)與類(lèi)中定義的方法的數量無(wú)關(guān),因為我(在測試方法之前和之后都)添加了10個(gè)方法,但性能上沒(méi)有變化。

26.派生類(lèi)中的方法運行起來(lái)要快于在基類(lèi)中定義的同樣的方法。

27.調用帶有一個(gè)參數的空函數,其花費的時(shí)間相當于執行7至8次的局部變量遞增操作。類(lèi)似的方法調用所花費的時(shí)間接近于15次的局部變量遞增操作。

28.用單引號代替雙引號來(lái)包含字符串,這樣做會(huì )更快一些。因為PHP會(huì )在雙引號包圍的字符串中搜尋變量,單引號則不會(huì )。當然,只有當你不需要在字符串中包含變量時(shí)才可以這么做。

29.輸出多個(gè)字符串時(shí),用逗號代替句點(diǎn)來(lái)分隔字符串,速度更快。注意:只有echo能這么做,它是一種可以把多個(gè)字符串當作參數的“函數”(譯注:PHP手冊中說(shuō)echo是語(yǔ)言結構,不是真正的函數,故把函數加上了雙引號)。

30.Apache解析一個(gè)PHP腳本的時(shí)間要比解析一個(gè)靜態(tài)HTML頁(yè)面慢2至10倍。盡量多用靜態(tài)HTML頁(yè)面,少用腳本。

31.除非腳本可以緩存,否則每次調用時(shí)都會(huì )重新編譯一次。引入一套PHP緩存機制通??梢蕴嵘?5%至100%的性能,以免除編譯開(kāi)銷(xiāo)。

32.盡量做緩存,可使用memcached。memcached是一款高性能的內存對象緩存系統,可用來(lái)加速動(dòng)態(tài)Web應用程序,減輕數據庫負載。對運算碼 (OP code)的緩存很有用,使得腳本不必為每個(gè)請求做重新編譯。

33.當操作字符串并需要檢驗其長(cháng)度是否滿(mǎn)足某種要求時(shí),你想當然地會(huì )使用strlen()函數。此函數執行起來(lái)相當快,因為它不做任何計算,只返回在zval 結構(C的內置數據結構,用于存儲PHP變量)中存儲的已知字符串長(cháng)度。

但是,由于strlen()是函數,多多少少會(huì )有些慢,因為函數調用會(huì )經(jīng)過(guò)諸多步驟,如字母小寫(xiě)化(譯注:指函數名小寫(xiě)化,PHP不區分函數名大小寫(xiě))、哈希查找,會(huì )跟隨被調用的函數一起執行。在某些情況下,你可以使用isset() 技巧加速執行你的代碼。

(舉例如下)

if (strlen($foo) < 5) { echo "Foo is too short"$$ }

(與下面的技巧做比較)

if (!isset($foo{5})) { echo "Foo is too short"$$ }

調用isset()恰巧比strlen()快,因為與后者不同的是,isset()作為一種語(yǔ)言結構,意味著(zhù)它的執行不需要函數查找和字母小寫(xiě)化。也就是說(shuō),實(shí)際上在檢驗字符串長(cháng)度的頂層代碼中你沒(méi)有花太多開(kāi)銷(xiāo)。

34.當執行變量$i的遞增或遞減時(shí),$i++會(huì )比++$i慢一些。這種差異是PHP特有的,并不適用于其他語(yǔ)言,所以請不要修改你的C或Java代碼并指望它們能立即變快,沒(méi)用的。++$i更快是因為它只需要3條指令(opcodes),$i++則需要4條指令。后置遞增實(shí)際上會(huì )產(chǎn)生一個(gè)臨時(shí)變量,這個(gè)臨時(shí)變量隨后被遞增。而前置遞增直接在原值上遞增。這是最優(yōu)化處理的一種,正如Zend的PHP優(yōu)化器所作的那樣。

牢記這個(gè)優(yōu)化處理不失為一個(gè)好主意,因為并不是所有的指令優(yōu)化器都會(huì )做同樣的優(yōu)化處理,并且存在大量沒(méi)有裝配指令優(yōu)化器的互聯(lián)網(wǎng)服務(wù)提供商(ISPs)和服務(wù)器。

35.并不是事必面向對象(OOP),面向對象往往開(kāi)銷(xiāo)很大,每個(gè)方法和對象調用都會(huì )消耗很多內存。

36.并非要用類(lèi)實(shí)現所有的數據結構,數組也很有用。

37.不要把方法細分得過(guò)多,仔細想想你真正打算重用的是哪些代碼?

38.當你需要時(shí),你總能把代碼分解成方法。

39.盡量采用大量的PHP內置函數。

40.如果在代碼中存在大量耗時(shí)的函數,你可以考慮用C擴展的方式實(shí)現它們。

41.評估檢驗(profile)你的代碼。檢驗器會(huì )告訴你,代碼的哪些部分消耗了多少時(shí)間。Xdebug調試器包含了檢驗程序,評估檢驗總體上可以顯示出代碼的瓶頸。

42.mod_zip可作為Apache模塊,用來(lái)即時(shí)壓縮你的數據,并可讓數據傳輸量降低80%。

日本熟妇人妻ⅹxxxx| 亚洲永久网址在线观看| 亚洲性生活视频| 成人午夜无码国产| 中文字幕一区二区三区四区五区| 精品无码国产AV一区二区三区| 狠狠五月激情六月丁香| 最新无码A∨在线观看| 国产原创无码丅v首播| 一个的一区免费影院黑人| 日本不卡一区二区三区在线观看| 国产成人精品国内自产拍麻豆| 无码h肉动漫在线观看| 波多野结衣亚洲av无码| 欧美日产欧美日产免费一区| 国产一级a片免费视频大全| 日韩欧美国产综合在线播放| 亚洲精品国产专区第一页| 娇娃荡女K8经典| 国产午夜精品无人区| 日韩三级片亚洲免费看| 五月激情婷婷丁香六月网| 日韩成av人片在线观看| 777爽死你无码免费看一二区| 无码一区二区三区人妻| 国产免费极品av吧在线观看| 成人亚洲精品久久久久| 在线免费观看91| 国产成人一区二区三区综合区| 人妻夜夜爽天天爽三区麻豆AV网站| 国产精品成人观看视频国产奇米| 99re热视频这里只精品| 免费行情网站9.1网页上线| 亚洲国产av日韩av二区| 久久国产精品影院18禁| 免费在线观看的毛片| China国语对白刺激videos| 国产一区二区电影在线观看| 亚洲精品国产AV现线| 精品欧美一区二区在线看片| 国内自产少妇自拍区免费| 超清无码熟妇人妻AV在线电影| 激情综合五月| 国产精品久久久久久久久久久久| 人人干人人爽| 永久免费无码aV在线网站| 国产对白视频| a级裸毛片| 久久大香香蕉国产| 污污在线观看| 久久久国产99久久国产一| 国产精品 久久久精品动漫网站| 亚洲国产精华液网站W| 巨胸爆乳美女露双奶头挤奶| 色妞色综合久久夜夜| 精品无码国产AV一区二区三区| 国产精品99| 日日躁夜夜躁夜夜揉人人视频| 亚洲精品第一国产综合精品91| 最新国产乱对白刺激视频| 中文字幕乱码人妻无码久久| 精品天堂成人Av在线播放| 999国内精品永久免费视频| 综合久久天天综合观看| 亚洲精品国产福利| 亚洲av无码一区二区三区电影| 精品视频无码一区二区三区| 亚洲AV无码一区二区三区性色| 日本一区二区三区在线观看| 亚洲精品丝袜久久久久久| 蜜桃久久精品一区二区三区| 亚洲精品老司机综合影院| 国产一区二区在线免费观看| 精品无码久久久久国产百度网盘| 免费精品99久久久国产| 国产欧美另类在线视频观看| 少妇群交换乱P过程| 日本加勒比系列香蕉蕉视频一| 亚洲国产99精品国自产| 香港三日本三级少妇三级视频| 女人爽得直叫免费视频| 国产在线一区二区| 国产日韩欧美中文字幕| 久久久中日AB精品综合| 四虎永久在线精品免费网站| 伊人大杳蕉在线影院视频| 免费高清av一区二区三区| 亚洲国产成人精品一区二区| 高潮videossex潮喷另类| 伊人成色综合网| 无码专区男人本色| 国产精品亚洲二区在线观看| 亚洲h视频在线| 美女视频黄a视频全免费网站色窝| 亚洲精品国产成人一区二区| 亚洲成V人片在线观看WWW| 狠狠色噜噜狠狠狠狠97首创麻豆| 亚洲国产精品第12页| 一级黄色大片免费| 精品国产伦一区二区三区免费| 一区二区精品成人| 一区二区电影在线观看| 强制撞开宫口灌尿h| 亚洲成AV人片在线观看网址| 国产精品无码久久久久一区二区| 一本大道久久久久精品嫩草| 亚洲国产日韩精品| 成人免费xxx色视频| 无码人妻精品中文字幕| 人妻少妇中文字幕久久| 亚洲自拍日本在线观看| 久久久久久久久久久久久久久久久久| 又爽又高潮的BB视频免费看| 国产视频一区二区在线观看| 国产精品自在在线午夜精华在线| 亚洲 欧美 卡通 另类 小说| 美女无遮挡直播软件免费看| 亚洲午夜免费福利视频| 韩国精品无码一区二区在线| 国产一区二区三区欧美电影| 亚洲av日韩av无码av| 亚洲av日韩综合一区二区三区| 亚洲熟女按摩av一区二区| 久久久久成人精品免费播放动漫| 日韩精品午夜视频二区| 欧美亚洲国产成人一区二区三区| 在线亚洲欧美日韩视频| 国产三级av在线播放| 亚洲国产aⅴ成人精品无吗| 亚洲精品人成网在线播放影院| 国内在线观看1024| 亚洲欧美一区二区中文| 俺去啦最新地址| 亚洲女人被黑人巨大进入| 午夜精品久久久久9999高清| 中文字幕日产无码| 一本大道香蕉中文日本不卡高清二区| 四川少妇搡bbw搡bbbb| JAPANESE极品少妇| 一级禁播片,电影院看不到| 日韩精品一区二区三区四虎影视| 亚洲欧美国产日产综合不卡| 国产一区二区视频在线| 亚洲日本中文字幕乱码中文| 久久综合精品成人一本| 欧美人与动人物xxxx| a级国产理论片在线播放| 亚洲成av人片一区二区久久久| 欧美性xxxxx 伊人五月| 日韩毛片视频免费在线播放| 国产成人精品免高潮| 91久久久无码国产精品免费| 无码专区男人本色| 亚洲电影一区二区| 国产精品无码无卡A级毛片| 五月天综合婷婷欧美专区| 精品久久婷婷丁香51| 日本成本人片免费网站| 日本一卡2卡3卡4卡无卡免费网站| 亚洲女初尝黑人巨高清全集下载| 国产澡人澡澡人午夜视频| 国产精品午夜小视频观看| 亚洲A无码综合A国产AV中文| 国产三级A三级三级|