PHP性能優(yōu)化(1)
Jun 08, 2016 pm 05:32 PM
前言
PHP 本身已經(jīng)是一種非??焖俚恼Z(yǔ)言,不過(guò)除了執(zhí)行速度,PHP仍然有許多可以被優(yōu)化的地方。
?????? 在本文中我們將介紹一下幾點(diǎn):
1.???????? 為什么PHP中優(yōu)化的有許多因素是和代碼沒(méi)有關(guān)系的
2.???????? 在提升PHP性能的過(guò)程中,為什么我們還需要了解更多的關(guān)于其它方面的知識(shí)
3.???????? 這些子系統(tǒng)導(dǎo)致瓶頸的原因以及解決的方法
4.???????? 我們還討論如何調(diào)整以及優(yōu)化PHP代碼使其擁有更佳的性能
達(dá)到高性能
?????? 當(dāng)我們談?wù)摳咝阅軙r(shí),我們并不僅僅指一個(gè)PHP腳本運(yùn)行的有多么快速,性能是指速度和可伸縮性的折中權(quán)衡。使用較少資源的腳本因該會(huì)比另一個(gè)使用了緩存的腳本要慢,但是在web服務(wù)器中,某一時(shí)刻可能運(yùn)行同一個(gè)腳本的多個(gè)拷貝。
?????? 在下面的例子中,我們假設(shè)腳本a.php是一位跑得十分快速賽跑選手,而b.php是一位馬拉松長(zhǎng)跑健將,他的速度是基本不變的。在負(fù)載較輕時(shí),a.php 運(yùn)行的要比b.php快,然而隨著web服務(wù)器的負(fù)載不斷增加,b.php的性能只是降低了一些,而a.php卻大勢(shì)已去!
??????
??? 現(xiàn)在我們以一個(gè)現(xiàn)實(shí)中的例子來(lái)解釋上面發(fā)生的情況。我們要寫一個(gè)PHP腳本,它從一個(gè)250k的文件中讀取數(shù)據(jù),并且生成一個(gè)HTML文件。為了便于比較,我們寫了兩個(gè)實(shí)現(xiàn)同樣功能腳本:“hare.php” 將文件一次性讀入內(nèi)存,并且一次性處理所有的數(shù)據(jù);“tortoise.php” 一次只從文件中讀取一行,并且決不在內(nèi)存中保留多于一行的信息。結(jié)果是tortoise.php因?yàn)槭褂昧烁嗟南到y(tǒng)調(diào)用而明顯的慢與hare.php。
?????? 腳本hare.php要求有0.04秒的CPU時(shí)間和
?????? 當(dāng)有10個(gè)腳本被同時(shí)運(yùn)行時(shí),hare.php將會(huì)占用掉所有的內(nèi)存(
?????? 下表中較快的PHP腳本使用了粗體以示區(qū)別:
連接數(shù) ? | 1個(gè)HTTP連接時(shí)的CPU時(shí)間 | 10個(gè)HTTP連接時(shí)的CPU時(shí)間 | 11個(gè)HTTP連接時(shí)的CPU時(shí)間 |
hare.php | 0.04 ? | 0.40 ? | 0.88 |
tortoise.php | 0.06 | 0.06 | 0.66 |
?
上面的例子說(shuō)明:提供好的性能并不是僅僅指編寫一個(gè)快速的PHP腳本。實(shí)現(xiàn)高性能的PHP還要求對(duì)底層硬件、操作系統(tǒng)、以及常用的配套軟件像web服務(wù)器和數(shù)據(jù)庫(kù)系統(tǒng)都有良好的認(rèn)識(shí)。
?
? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











phphasthreecommentstyles : //, #forsingle-lineand/.../formulti-lline.usecommentstoexplainwhycodeexists, notwhatitdoes.marktodo/fixMeitemsandDisableCodeTemporlinlyDuingDeBugging.aVoidOver-commentingsimplOgic.writeCoCoCoCoCoConcomeCOCOCOCONCOCOCOCOCOCOCOCOCISE

Windows? PHP? ???? ?? ???? ??? ?????. 1. ??? PHP ??? ?????? ?? ??????. Apache? ?? ThreadSafe ??? ????? Nginx??? ThreadSafe ??? ???? ?? ????. 2. php.ini ??? ???? php.ini-development ?? php.ini-production? php.ini? ?????. 3. ?? ? ??? ?? ??? ?? ?? ??? PHP ??? ??????. 4. PHP? ????? ?????? ??? ????? ?? ?? ?? PHP-V? ???? ?? ??? ???? ?? ?? ??? ??????. 5. Apache? ???? ?? httpd.conf?? p? ???????.

PHP? ?? ???? 4 ?? ?? ??? ?????. 1. PHP ??? ?????? ??? ??? ???? ?? ?????. 2. Echo ? Print? ????? ?? ???? ????, ??? Echo? ?? ?? ??? ?????? ??????. 3. ?? ???? ?? ???? ??????? //, # ? //; 4. ? ??? ?????? ????? ??? ?? ????? ??? ??? ??? ?? ???? ??? ????. ??? ?? ??? ????? ???? ???? PHP ??? ???? ? ??? ? ? ????.

Python? Ifelse ??? ???? ??? ??? ??? ?? ??? ???? ????. 1. ???? ??? ???? ??? ???? ????. ??? ??? ?? ??? ???? ?? ?????. 2. ?? ?? ??? ELIF? ?? ????, ????? ???? ?? ???? ?????. 3. ?? ?? ??? ???? ?? ?? ? ?? ? ?? ???? ?? ?? ????. 4. 3 ?? ??? ??? ?????? ??? ifelse? ???? ? ??? ? ????. ?? ??, ??? ?? ? ??? ??????? ?????? ??? ???? ???? ?? ??? ??? ? ????.

???? PHP8? ???? ??? ??? ????. 1. ????? ??? ?? ????; 2. PHP8 ? ?? ?? ??? ??????. 3. ??? ????? ????? ??? ??????. 4. ??? ?? ?? ??? ??????. Windows ???? Zip ???? ?????? ?? ?? ? ?? ?? ??? ???? ???? ????? ?? ??? ??? ?? ? ? ????. MACOS ???? Homebrew? ???? ? ??, PHP8 ??, ?? ?? ?? ? ?? ??? ?? ??? ???? ?? ????. ?? ??? ?? ????? ???? ????? ????? ??? ?? ??? ??? ??? ? ????.

phpisaserver-sideScriptingLanguageUsedForWebDevelopment, ?? ProcessesData, InteractSwithDatabases ? SendShtmlTobrowsers.commonusesincludeusera-sectentication, e-commerceplatforms

? ?? PHP ???? ??? ???? ??? ?????? ?? ?? ?? ??? ???? XAMPP/MAMP/LAMP? ?? ? ?? ??? ???? ???? ??? ???? ??? ?????. ??, hello.php?? ??? ??? ?? ??? ???? ???? ??????. ??, PHP ? HTML? ???? ?? ??? ??? ???? ?? ????. ?????, ???? ??, ?? ?? ? ?? ?? ??? ?? ???? ?????? ???? ???? ?? ????? ???????.

ToHandleFileOperationsInphp, useAppreptFunctionsandModes.1.TOREADAFILE, USEFILE_GET_CONTENTS () FORSMALLFILESORFGETS () inALOOPFORLE-by-lineProcessing.2.TOWRITETOAFILE, USEFILE_PUTE_CONTENTS () USEFILE_PUTE_CONTENTS () FORSIMPLEWRITE () FORSIMPLAGFILE (ORFENDFLAG)
