溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何優(yōu)化PHP代碼可以提高速度

發(fā)布時間:2021-03-09 15:29:04 來源:億速云 閱讀:192 作者:小新 欄目:編程語言

小編給大家分享一下如何優(yōu)化PHP代碼可以提高速度,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

  網(wǎng)頁訪問速度的提升,是可以通過代碼的優(yōu)化來實現(xiàn)的。代碼的優(yōu)化,并不是說代碼越少越好,而是主要看代碼的運行能力和執(zhí)行效率,看其消耗CPU和內(nèi)存的多少。例如Facebook近來就宣布通過代碼優(yōu)化而將網(wǎng)站性能提高了一倍,平均訪問時間從5s降至2.5s,這個結(jié)果無疑是極其誘人的。

  PHP是一門很多人正在使用的語言,在網(wǎng)站開發(fā)上PHP的使用廣泛度超過ASP和ASP.NET,看看時下流行的CMS和博客用什么語言來開發(fā)的就知道了。

  其實PHP入門很容易,尤其是對于一個已經(jīng)接觸過程序編寫的人來說,而對于沒有接觸過程序語言的菜鳥來說,學習用PHP做一個輸出helloworld的網(wǎng)頁也很輕松。

  然而要編寫高效率的代碼,并不是所有懂程序的人都可以編寫出來的,這需要經(jīng)過多年的研究積累和經(jīng)驗總結(jié)。

  本文將給大家提煉一些PHP代碼優(yōu)化的實例,利用這些優(yōu)化,PHP代碼的運行能力將會大大提高,速度提升5倍以上有些情況下并不是不能出現(xiàn)。

1、echo比print快

  echo和print是PHP程序中經(jīng)常使用的指令,尤其是需要調(diào)試的時候。echo和print都能輸出一段信息,但經(jīng)測試發(fā)現(xiàn),echo運行速度會比print快,因此在程序編寫是應使用echo而非print。但是有時候也需要用到print,echo不能完全代替print。請看phpecho()和print()有什么區(qū)別。

2、連接符用逗號而不是句號

  php里逗號和句號都可以起到連接符的作用,關(guān)于如何優(yōu)化輸出,可以看這里如何優(yōu)化php字符串echo輸出。

  此外,輸出多個字符串時,用逗號代替句點來分隔字符串,速度更快。

3、使用選擇分支語句(譯注:即switchcase)好于使用多個if,elseif語句。

  ifelseif的使用非常普遍,在其他語言里也一樣,這個寫法好像更符合人的說話習慣,但是在程序里這樣寫并不太好,它在效率上比switchcase要低。所以,一旦程序里需要多個判斷時,就應該用switchcase而不要再用ifelseifelseif這樣。

4、數(shù)據(jù)庫連接當使用完畢時應關(guān)掉

  在操作數(shù)據(jù)庫時,很多程序員往往忘記關(guān)掉數(shù)據(jù)庫連接,或許他們沒有這個習慣。數(shù)據(jù)庫連接是需要消耗內(nèi)存為代價的,連接數(shù)越多內(nèi)存消耗就越多,所以在實際應用中都必須及時關(guān)閉不需要用到的連接,以釋放內(nèi)存,緩解服務器壓力。

5、錯誤消息代價昂貴

  錯誤消息一般用于調(diào)試,它的執(zhí)行效率其實是很低的,速度上會比直接運行慢很多。所以,在程序不需要抓取錯誤消息時,就不要用。

6、局部變量要合理使用

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

  遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢9至10倍。

  僅定義一個局部變量而沒在函數(shù)中調(diào)用它,同樣會減慢速度(其程度相當于遞增一個局部變量)。PHP大概會檢查看是否存在全局變量。

7、用單引號代替雙引號來包含字符串

  實踐證明,用單引號代替雙引號來包含字符串,這樣做會更快一些。

  因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會。當然,只有當你不需要在字符串中包含變量時才可以這么做。更多分析請看實例分析php單引號和雙引號的區(qū)別。

看完了這篇文章,相信你對“如何優(yōu)化PHP代碼可以提高速度”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI