最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php之性能優(yōu)化案例

 更新時間:2021年07月07日 09:13:45   作者:川山甲  
這篇文章主要介紹了php之性能優(yōu)化案例,本文通過多個案例和多種場景下講述了如何對php腳本進(jìn)行性能上的優(yōu)化,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

php是一個很流行的腳本語言,現(xiàn)在很多公司(新浪、優(yōu)酷、百度、搜狐、淘寶等等)在使用這種語言進(jìn)行網(wǎng)站開發(fā)。我的這篇文章,我只是希望能夠提高你的php腳本性能。請記住你的php腳本性能,很多時候依賴于你的php版本、你的web server環(huán)境和你的代碼的復(fù)雜度。

優(yōu)化你代碼中的瓶頸

Hoare曾經(jīng)說過“過早優(yōu)化是一切不幸的根源”。當(dāng)你想要讓你的網(wǎng)站更快運轉(zhuǎn)的時候,你才應(yīng)該去做優(yōu)化的事情。當(dāng)你要改變你代碼之前,你需要做的事是什么原因引起了系統(tǒng)緩慢?你可以通過以下指導(dǎo)和其他方式優(yōu)化你的php,可能是數(shù)據(jù)庫原因也可能是網(wǎng)路原因!通過優(yōu)化你的php代碼,你能嘗試著找出你的系統(tǒng)瓶頸。

升級你的php版本

你的團隊成員提出,這些年php引擎已經(jīng)有很多象征性的性能提升。如果你的web server仍然運行著比較老的版本,如php3或者php4。那么在你嘗試著優(yōu)化你代碼之前,應(yīng)該先深入調(diào)查一下版本之間的升級情況。

使用緩存

利用緩存模塊(如Memcache)或者模板系統(tǒng)(如Smarty)進(jìn)行緩存處理。我們可以緩存數(shù)據(jù)庫結(jié)果和提取頁面結(jié)果的方式來提升網(wǎng)站性能。

使用輸出緩沖區(qū)

當(dāng)你的腳本嘗試著渲染的時候,php會使用內(nèi)存緩存區(qū)保存所有的數(shù)據(jù)。緩存區(qū)可能讓你的頁面看起來很慢,原因是緩沖區(qū)填滿所有要響應(yīng)的數(shù)據(jù)之后再把結(jié)果響應(yīng)給用戶。幸運的是,你能夠做一下改變,迫使php強行在緩沖區(qū)填滿之前把數(shù)據(jù)響應(yīng)給用戶,這樣就會讓你的網(wǎng)站看起來更快一些。

避免寫幼稚的setters和getters

當(dāng)你寫php類的時候,你可以直接操作對象屬性,這樣能幫助你節(jié)省時間和提升你的腳本性能。而不是那種讓人感到幼稚可笑的setters和getters。下面是一些案例:dog類通過使用setName()和getName()方式來操作name屬性。

class dog {
  public $name = '';
 
  public function setName($name) {
    $this->name = $name;
  }
 
  public function getName() {
    return $this->name;
  }
}

注意:setName()和getName()除了存儲和返回name屬性外,沒做任何工作。

$rover = new dog();
$rover->setName('rover');
echo $rover->getName();

直接設(shè)置和訪問name屬性,性能能提升100%,而且也能縮減開發(fā)時間!

$rover = new dog();
$rover->name = 'rover';
echo $rover->name;

沒有原因不要copy變量

有時初級phper,為了使代碼更加“干凈”,常常把已經(jīng)定義的變量重新賦值給另一個變量。這實際上就導(dǎo)致了雙重內(nèi)存的消耗(當(dāng)改變變量的時候),這就導(dǎo)致腳本的性能下降。比如一個用戶把一個512KB的變量在額外插入給另一個變量,那么就會導(dǎo)致1MB的內(nèi)存被消耗掉。

$description = strip_tags($_POST['description']);
echo $description;

上面的代碼沒有任何原因,復(fù)制了一遍變量。你僅需要使用內(nèi)聯(lián)的方式簡單輸出變量,而不用額外的消耗內(nèi)存。

echo strip_tags($_POST['description']);

避免循環(huán)做SQL操作

經(jīng)常犯的錯誤是把一個SQL 操作放置到一個循環(huán)中,這就導(dǎo)致頻繁的訪問數(shù)據(jù)庫,更重要的是,這會直接導(dǎo)致腳本的性能低下。以下的例子,你能夠把一個循環(huán)操作重置為一個單一的SQL語句。

foreach ($userList as $user) {
  $query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
  mysql_query($query);
}

  過程:

INSERT INTO users (first_name,last_name) VALUES("John", "Doe")

替換這種循環(huán)方案,你能夠拼接數(shù)據(jù)成為一個單一的數(shù)據(jù)庫操作。

$userData = array();
foreach ($userList as $user) {
    $userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
 }
$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);
mysql_query($query);

  過程:

INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")... 

到此這篇關(guān)于php之性能優(yōu)化案例的文章就介紹到這了,更多相關(guān)php性能優(yōu)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP cookie與session會話基本用法實例分析

    PHP cookie與session會話基本用法實例分析

    這篇文章主要介紹了PHP cookie與session會話基本用法,結(jié)合實例形式分析了PHP cookie與session會話基本存儲、設(shè)置、刪除等相關(guān)使用方式,需要的朋友可以參考下
    2019-11-11
  • php實現(xiàn)圖片上傳并進(jìn)行替換操作

    php實現(xiàn)圖片上傳并進(jìn)行替換操作

    這篇文章主要為大家詳細(xì)介紹了php實現(xiàn)圖片上傳并進(jìn)行替換操作,講解的很詳細(xì),通俗易懂,感興趣的小伙伴們可以參考一下
    2016-03-03
  • php時間計算相關(guān)問題小結(jié)

    php時間計算相關(guān)問題小結(jié)

    這篇文章主要介紹了php時間計算相關(guān)問題,結(jié)合實例形式總結(jié)分析了php關(guān)于時間與日期的常見操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • 解決cPanel無法安裝php5.2.17

    解決cPanel無法安裝php5.2.17

    做國外生意的朋友換購一臺服務(wù)器,需要重新安裝cPanel,花了幾十美元買來的cPanel不支持5.2.17,最低版本支持到5.3.27,最高5.5,這讓人非常惱火,上官網(wǎng)找解決方法,如下為安裝php5.2.17的方法。
    2014-06-06
  • php輸出文字亂碼的解決方法

    php輸出文字亂碼的解決方法

    在本篇文章里我們給大家整理了關(guān)于php輸出文字亂碼的解決方法以及相關(guān)知識點,有需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • PHP中的self關(guān)鍵字詳解

    PHP中的self關(guān)鍵字詳解

    這篇文章主要給大家介紹了關(guān)于PHP中self關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • php調(diào)整gif動畫圖片尺寸示例代碼分享

    php調(diào)整gif動畫圖片尺寸示例代碼分享

    這篇文章主要介紹了如何使用php調(diào)整gif動畫圖片尺寸,大家可以參考使用
    2013-12-12
  • php與XML、XSLT、Mysql的結(jié)合運用實現(xiàn)代碼

    php與XML、XSLT、Mysql的結(jié)合運用實現(xiàn)代碼

    php與XML、XSLT、Mysql的結(jié)合運用實現(xiàn)代碼,需要的朋友可以參考下。
    2009-11-11
  • php+mysql實現(xiàn)的無限分類方法類定義與使用示例

    php+mysql實現(xiàn)的無限分類方法類定義與使用示例

    這篇文章主要介紹了php+mysql實現(xiàn)的無限分類方法類定義與使用,結(jié)合實例形式分析了php+mysql無限分類方法類基本定義與使用方法,需要的朋友可以參考下
    2020-05-05
  • 8個PHP程序員常用的功能匯總

    8個PHP程序員常用的功能匯總

    這篇文章主要介紹了8個PHP程序員常用的功能匯總,需要的朋友可以參考下
    2014-12-12

最新評論

万年县| 满洲里市| 沂南县| 宜君县| 施甸县| 渝中区| 新化县| 平遥县| 丽水市| 蓝田县| SHOW| 安乡县| 石景山区| 章丘市| 漳州市| 河西区| 马边| 肥西县| 铜山县| 宜阳县| 恩施市| 武宁县| 营山县| 永顺县| 会昌县| 成武县| 平潭县| 伊川县| 定西市| 蓬安县| 汶上县| 台中县| 龙陵县| 湘潭县| 墨脱县| 资源县| 青浦区| 酉阳| 红河县| 锦州市| 宜昌市|