PHP的語言層面的優(yōu)化以及代碼優(yōu)化技巧_PHP教程
推薦:PHP使用zlib擴展實現(xiàn)頁面GZIP壓縮輸出餅干是這樣壓縮的——PHP使用zlib擴展實現(xiàn)頁面GZIP壓縮輸出 GZIP(GNU-ZIP)是一種壓
大規(guī)模的系統(tǒng)開發(fā)中,Cache無疑是至關(guān)重要的,php世界里,雖然不如java當中,有那么豐富的cache解決方案可以選擇,但是,仍然有一些成熟的方案。
1、語言層面的優(yōu)化:php具有不少引擎(engine)層面的api,通過這些api,可以改變引擎執(zhí)行的行為,從而達到優(yōu)化運行的目的。其中,最值得 去做的就是對編譯結(jié)果cache。眾所周知,php每次執(zhí)行都需要經(jīng)歷源代碼–〉編譯–〉中間代碼–〉引擎執(zhí)行 這樣的過程,對于一些大型應(yīng)用,相當多的時間花費在無益的編譯上了(不僅僅是訪問頁面的php文件需要經(jīng)過編譯環(huán)節(jié),當腳本中利用require(), include()包含的一些文件都需要經(jīng)過編譯)。通過對編譯結(jié)果的cache,能夠極大地提高系統(tǒng)的性能(和系統(tǒng)復雜性、規(guī)模成正比) 。
php世界中三個主流的能夠?qū)崿F(xiàn)編譯cache的工具是:
The Zend Accelerator—A commercial, closed-source, for-cost compiler cache produced by Zend Industries
The ionCube Accelerator—A commercial, closed-source, but free compiler cache written by Nick Lindridge and distributed by his company, ionCube
APC—A free and open-source compiler cache written by Daniel Cowgill and George Schlossnagle
APC的安裝方法,APC包含在PECL中,具體安裝如下 190-823 190-802 :
運行命令
#pear install apc
之后,在php.ini文件中添加:
extension = /path/to/apc.so
這樣,就完成了安裝,當下次運行php,APC就會自動激活,將編譯結(jié)果放入共享內(nèi)存中cache起來,下次再執(zhí)行的時候就直接從內(nèi)存中獲取編輯結(jié)果執(zhí)行,不需要再次編譯。
疑問:對于自上次編譯后變動了的php,APC是否能夠自動重新編譯?
2、php代碼優(yōu)化:利用一些工具能夠市的編譯后產(chǎn)生優(yōu)質(zhì)中間代碼,具體如下:
The Zend Optimizer is a closed-source but freely available optimizer.
The ionCube accelerator contains an integrated optimizer.
proof-of-concept optimizer in PEAR.
優(yōu)化器主要的功能:
1、清除無用的代碼,例如永遠也不會執(zhí)行的死代碼。
2、常量的計算,例如將$seconds_in_day = 24*60*60直接變?yōu)?seconds_in_day = 86400;
3、其它代碼優(yōu)化功能,例如有這么一個語句:
$count ;
會優(yōu)化為 $count,使得執(zhí)行速度更快。 當然,如果語句是$i = $count ;則不會進行優(yōu)化
分享:也用PHP來實現(xiàn)網(wǎng)頁靜態(tài)發(fā)布的兩種方法如今很多網(wǎng)站都是靜態(tài)發(fā)布的,PHP當然也可以方便的實現(xiàn)靜態(tài)發(fā)布嘍,具體的實現(xiàn)方法很多,下面我就說說我會的兩種方法。 方法一:ob_get_contents() 這是一種很方便的方法,也是很常用的方法
- 相關(guān)鏈接:
- 教程說明:
PHP教程-PHP的語言層面的優(yōu)化以及代碼優(yōu)化技巧
。