日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
讓PHP網(wǎng)站跑的更快如何優(yōu)化PHP

PHP是一種執(zhí)行起來非常迅速的編程語言,但是比起僅僅優(yōu)化代碼來說仍然值得優(yōu)化PHP本身。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)應(yīng)城,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

本文我們將根據(jù)一些實(shí)效闡述為什么優(yōu)化PHP本身要比優(yōu)化代碼來的更貼切,以及為什么需要理解根據(jù)PHP在你的服務(wù)器上其他相關(guān)子系統(tǒng)的表現(xiàn)找出瓶頸并修復(fù)之。與此同時(shí),我們也提到了如何優(yōu)化您的PHP代碼來讓他們擁有更快的執(zhí)行速度。

獲得高性能

當(dāng)我們談及好的性能,往往不僅僅是指您的PHP代碼執(zhí)行起來有多快。性能是一套在可量化評測和速度之間取出的平衡。僅僅依靠使用更少資源的代碼執(zhí)行起來也許比在高速緩存中之行的代碼更慢,并且相同的一組(在高速緩沖中執(zhí)行的)代碼可以在同時(shí)并發(fā)執(zhí)行在一臺Web服務(wù)器上。

在下面的例子中,A.php算作一位盡可能跑得快的賽跑選手,而B.php是一個(gè)幾乎可以以同一慢速永遠(yuǎn)跑下去的馬拉松選手。輕負(fù)荷情況下,A.php可以充分的快,但是當(dāng)流量增加后,B.php的性能表現(xiàn)將僅僅降低一點(diǎn)點(diǎn)而A.php會垮掉。

讓我們來通過一個(gè)事實(shí)來驗(yàn)證此說法更深遠(yuǎn)的本質(zhì)意義。假設(shè)我們需要讀取一個(gè)250K的文件并生成一個(gè)關(guān)于此文件的HTML概要。我們寫了兩個(gè)腳本來做同樣一件事:hare.php將一次性讀取整個(gè)文件到內(nèi)存中,然后一步執(zhí)行到位;而tortoise.php每次只讀取文件的一行,并且決不超過內(nèi)容容量。結(jié)果Tortoise.php因?yàn)槎啻巫x寫需要更多的系統(tǒng)回應(yīng)而慢得多。"

程序每執(zhí)行一次,hare.php需要0.04秒CPU執(zhí)行時(shí)間和10Mb的內(nèi)存,而tortoise.php需要0.06秒CPU執(zhí)行時(shí)間和5Mb的內(nèi)存。服務(wù)器共有100Mb實(shí)際內(nèi)存容量并且其CPU有99%是空閑的。我們同時(shí)假定執(zhí)行這樣一個(gè)簡單事件不產(chǎn)生內(nèi)存碎片。

當(dāng)有10各程序并發(fā)執(zhí)行時(shí),hare.php將發(fā)生內(nèi)存溢出(10 ×10 = 100)。與此同時(shí),tortoise.php仍將有50Mb空余內(nèi)存可用!11個(gè)程序并發(fā)執(zhí)行將使hare.php徹底“潰敗”因?yàn)樗_始需要使用虛擬內(nèi)存——執(zhí)行速度有可能降低到其常規(guī)速度的一半以下;而且現(xiàn)在每一個(gè)單獨(dú)程序進(jìn)程需要0.08秒CPU執(zhí)行時(shí)間。而此期間,tortoise.php仍舊運(yùn)行在其常規(guī)CPU執(zhí)行時(shí)間——0.06秒!

以下表格中,執(zhí)行得更快的PHP腳本使用粗體區(qū)分開來:

如您在上例中看到的,獲得更好的性能不再僅僅是寫出執(zhí)行起來更快的PHP程序。高性能PHP表現(xiàn)需要對底層硬件知識以及操作系統(tǒng)、軟件支持如Web服務(wù)器、數(shù)據(jù)庫等有一個(gè)良好認(rèn)識和理解。

瓶頸

以上兩個(gè)例子讓我們看到了(性能)下降的瓶頸所在。當(dāng)擁有無限大容量的內(nèi)存時(shí),hare.php的確是始終比tortoise.php快。但是,僅僅認(rèn)為內(nèi)存是PHP整體性能的瓶頸所在顯得過于單純——實(shí)際上遠(yuǎn)不止這些:

(a) 網(wǎng)絡(luò)

你的網(wǎng)絡(luò)有可能是***的瓶頸所在。如果你有10M的帶寬——最多你只能獲得1M/秒的傳輸速度。如果假設(shè)每個(gè)PHP頁為30k,那么每秒僅僅只傳輸33頁就將使你的網(wǎng)絡(luò)帶寬達(dá)到飽和。更多導(dǎo)致瓶頸產(chǎn)生的因素包括頻繁訪問低速DNS,或者網(wǎng)絡(luò)設(shè)備僅能獲得十分有限的存儲。

(b) CPU

如果你監(jiān)視一下你的CPU負(fù)荷情況,發(fā)送一個(gè)純靜態(tài)HTML頁面并不會增加CPU負(fù)擔(dān)——就像我們以上提到的,此時(shí)瓶頸在于網(wǎng)絡(luò)。當(dāng)然啦,對于由PHP生成的復(fù)雜動態(tài)頁面,你的CPU速度自然將成為限制因素之一。擁有包含多個(gè)CPU的服務(wù)器或者一個(gè)服務(wù)器陣列將減輕因CPU帶來的影響。

(c) 共享存儲

共享存儲主要在通訊進(jìn)程中發(fā)揮作用,或者是用于儲存公共資源(比如多個(gè)CPU間的緩存數(shù)據(jù)或代碼)。如果共享存儲分配不足,同樣將導(dǎo)致瓶頸的發(fā)生。

(d) 文件系統(tǒng)

訪問硬盤的速度至少比直接讀取內(nèi)存要慢50到100倍。使用高速緩存將使情況有所好轉(zhuǎn)。然而低內(nèi)存空間將適用于文件緩沖的內(nèi)存(通常稱為虛擬內(nèi)存)空間減少,進(jìn)而導(dǎo)致整體性能下降。虛擬內(nèi)存容易產(chǎn)生大量文件碎片,導(dǎo)致訪問硬盤速度下降。在Unix系統(tǒng)上使用大量鏈接標(biāo)記同樣也會石訪問硬盤的速度下降。缺省Linux安裝模式下的默認(rèn)硬盤訪問設(shè)置也是很不被看好的,因?yàn)樗菫榱思嫒菪远皇撬俣取1匾獣r(shí)請使用hdparm命令來更改Linux硬盤配置。

(e) 進(jìn)程管理

在某些操作系統(tǒng)上(比如說Windows系統(tǒng))創(chuàng)建一個(gè)新的進(jìn)程是很緩慢的操作。這意味著在這些操作系統(tǒng)上作涉及到進(jìn)程創(chuàng)建的CGI應(yīng)用會慢許多。這種時(shí)候在多進(jìn)程模式下運(yùn)行PHP將會有所改善。(注意:老版本PHP尚不支持多進(jìn)程模式)

應(yīng)避免你的服務(wù)器產(chǎn)生過多的無效進(jìn)程。舉個(gè)例子,如果你的服務(wù)器是純Web服務(wù),需關(guān)閉(設(shè)置是不安裝)X-Windows窗口系統(tǒng)。Windows系統(tǒng)上,應(yīng)禁用微軟快速搜索(Office的一部分)和第三方屏保程序(通常會需要100%的CPU利用)。

有些程序你可以考慮刪除包括一些不常用的網(wǎng)絡(luò)協(xié)議、郵件服務(wù)、病毒掃描、(鼠標(biāo),紅外線端口)驅(qū)動程序等。Unix系統(tǒng)上,假定你通過SSH訪問你的服務(wù)器,那么你可以考慮去除:

telnetd,inetd,atd,ftpd,lpd,sambad模塊

用于收取郵件的sendmail模塊

NFS的映射表

xfs,fvwm,xinit,X

你也可以通過修改啟動腳本(其路徑通常位于/etc/init* 或 /etc/rc*/init*)來實(shí)現(xiàn)禁用不同的啟動程序。
也可以檢查一下定期處理任務(wù)安排是否合理,看是否可以在服務(wù)器空閑期執(zhí)行。

(f) 連接到其他服務(wù)器

如果你的服務(wù)器需要其他服務(wù)器提供的服務(wù),此時(shí)有可能是其他服務(wù)器產(chǎn)生了瓶頸。最常見的就是一個(gè)很慢的執(zhí)行諸多復(fù)雜查詢的數(shù)據(jù)庫服務(wù)器服務(wù)于很多其他服務(wù)器。


網(wǎng)頁名稱:讓PHP網(wǎng)站跑的更快如何優(yōu)化PHP
鏈接分享:http://m.5511xx.com/article/djspchj.html