www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]eAccelerator是一個非常優(yōu)秀的PHP加速器,通過緩存編譯之后的PHP代碼文件,使得PHP編譯對服務(wù)器的開銷幾乎為零。eAccelerator本身的開銷也是極少的?最新的PHP5.4.8安裝e

eAccelerator是一個非常優(yōu)秀的PHP加速器,通過緩存編譯之后的PHP代碼文件,使得PHP編譯對服務(wù)器的開銷幾乎為零。eAccelerator本身的開銷也是極少的

?

最新的PHP5.4.8安裝eAccelerator,

需要注意的是要安裝高版本的,低了編譯不過去。

官網(wǎng):http://eaccelerator.net/

?

注意PHP5.5以后暫時不能使用eAccelerator

原因:其中一個我知道的是eAccelerator中使用了

????php_register_info_logo(EACCELERATOR_VERSION_GUID,?"text/plain",?(unsigned?char*)EACCELERATOR_VERSION_STRING,?sizeof(EACCELERATOR_VERSION_STRING));
????php_register_info_logo(EACCELERATOR_LOGO_GUID,????"image/gif",??(unsigned?char*)eaccelerator_logo,?sizeof(eaccelerator_logo));


php_register_info_logo在PHP5.5中已經(jīng)移除了。

?

1.下載安裝eAccelerator

#wget https://github.com/eaccelerator/eaccelerator/tarball/master

最新的版本是eaccelerator-42067ac.tar.gz

#tar zxvf eaccelerator-42067ac.tar.gz

需要phpize安裝php擴(kuò)展,如果不明白phpize可以看這個:http://blog.csdn.net/21aspnet/article/details/8193482

需要注意的是需要寫php的安裝路徑對應(yīng)的phpize下面的php-config也是

#? /usr/local/webserver/php/bin/phpize

#./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config

# make

需要注意的是要安裝高版本的,低了編譯不過去。

# make install

?

需要記住生成的提示信息下面配置php要用到

/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-

20100525/


2.配置php.ini配置文件

#這個是我機(jī)器的so位置
extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"
#這個是設(shè)置一個緩存大小
eaccelerator.shm_size="64"
#緩存目錄
eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"

#網(wǎng)站目錄,把解開的eAccelerator 的源碼包里的control.php 文件復(fù)制到你的WEB 服務(wù)器中的一個目錄下,使其它以通過http 訪問,如果不加那么看不到緩存的頁面列表,但是還是可以看到內(nèi)存信息

eaccelerator.allowed_admin_path=/usr/www/

eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

eaccelerator.keys???? = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content? = "disk_only"

設(shè)置內(nèi)容緩存的存放的地方,可以設(shè)置為:
shm_and_disk ?在共享緩存和硬盤(默認(rèn)值)
shm????? 默認(rèn)存在共享內(nèi)存,如果共享內(nèi)存已滿或大小超過 "eaccelerator.shm_max" 的值,就存到硬盤
shm_only ?? 只存放在共享內(nèi)存
disk_only ?? 只存放在硬盤
none ???? 不緩存數(shù)據(jù)

這里為了查看效果設(shè)置為存在硬盤

?

增加權(quán)限

#mkdir /usr/local/webserver/eaccelerator_cache
#chmod 777 /usr/local/webserver/eaccelerator_cache

?

3.測試查看phpinfo()

?

4.查看緩存文件夾

為了直觀所以截圖圖形界面

這說明成功生成了緩存

?

5.更好的監(jiān)控方式

eAccelerator控制面板的地址,安裝包里有一個control.php文件,把它復(fù)制到網(wǎng)站的任意目錄,可以用它查看和管理,這個必須指定,否則查看緩存內(nèi)容的時候會出錯,訪問時候默認(rèn)的用戶名是:admin,密碼:eAccelerator

?

注意,之前的php.ini配置文件加上這個配置就會看到明細(xì)信息

eaccelerator.allowed_admin_path=/usr/www/

?

重啟apache則會清空緩存

?

文檔:

eaccelerator.shm_size="8"
eAccelerator 可以使用的共享內(nèi)存的數(shù)量 (以MB為單位) . "0" 是指操作系統(tǒng)的默認(rèn)值,默認(rèn)值是 "0",可根據(jù)服務(wù)器的實(shí)際情況來調(diào)整:16、32、64、128都是可以的。

eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
這個目錄是給磁盤緩存使用,eAccelerator 在這里儲存預(yù)先編譯好的代碼,進(jìn)程數(shù)據(jù),內(nèi)容以及用戶的自定義內(nèi)容。同樣的數(shù)據(jù)也能被儲存在共享內(nèi)存中 (這樣可以提高訪問速度)

eaccelerator.enable="1"
開啟或關(guān)閉 eAccelerator,"1" 為開啟,"0" 為關(guān)閉。默認(rèn)值為 "1"。

eaccelerator.optimizer="1"
啟或關(guān)閉內(nèi)部優(yōu)化器,可以提升代碼執(zhí)行速度。"1" 為開啟,"0" 為關(guān)閉。默認(rèn)值為 "1"。

eaccelerator.check_mtime="1"
打開或者關(guān)閉 PHP 的文件修改檢查,"1" 是指打開,"0" 是指關(guān)閉。默認(rèn)值是 "1"。

eaccelerator.debug="0"
開啟或關(guān)閉調(diào)試日志記錄。"1" 為開啟,"0" 為關(guān)閉。默認(rèn)值為 "0"。會將緩存命中得記錄寫入日志。

eaccelerator.filter=""
判斷哪些 PHP 文件必須緩存??梢灾付ň彺婧筒痪彺娴奈募愋停ㄈ?"*.php *.phtml"等)如果參數(shù)以 "!" 開頭,則匹配這些參數(shù)的文件被忽略緩存。默認(rèn)值為 "",即,所有 PHP 文件都將被緩存。

eaccelerator.shm_max="0"
當(dāng)使用 " eaccelerator_put() " 函數(shù)時禁止其向共享內(nèi)存中存儲過大的文件。該參數(shù)指定允許存儲的最大值,單位:字節(jié) (10240, 10K, 1M)。"0" 為不限制。默認(rèn)值為 "0"。

eaccelerator.shm_ttl="3600"
當(dāng) eAccelerator 獲取新腳本的共享內(nèi)存大小失敗時,它將從共享內(nèi)存中刪除所有在最后 "shm_ttl" 秒內(nèi)沒有存取的腳本緩存。默認(rèn)值為"0",為不從共享內(nèi)存中刪除任何緩存文件。

eaccelerator.shm_prune_period="3600"
當(dāng) eAccelerator 獲取新腳本的共享內(nèi)存大小失敗時,他將試圖從共享內(nèi)存中刪除早于"shm_prune_period" 秒的緩存腳本。默認(rèn)值為 "0",為不從共享內(nèi)存中刪除任何緩存文件。

eaccelerator.shm_only="0"
允許或禁止將已編譯腳本緩存在磁盤上。該選項對 session 數(shù)據(jù)和內(nèi)容緩存無效。默認(rèn)值為 "0",為使用磁盤和共享內(nèi)存進(jìn)行緩存。

eaccelerator.compress="1"
允許或禁止壓縮內(nèi)容緩存。默認(rèn)值為 "1",為允許壓縮。

eaccelerator.compress_level="9"
指定內(nèi)容緩存的壓縮等級。默認(rèn)值為 "9",為最高等級。

eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"
設(shè)置內(nèi)容緩存的存放的地方,可以設(shè)置為:
shm_and_disk ?在共享緩存和硬盤(默認(rèn)值)
shm????? 默認(rèn)存在共享內(nèi)存,如果共享內(nèi)存已滿或大小超過 "eaccelerator.shm_max" 的值,就存到硬盤
shm_only ?? 只存放在共享內(nèi)存
disk_only ?? 只存放在硬盤
none ???? 不緩存數(shù)據(jù)

?

6.測試性能

快速排序代碼

???????<?php
???????function?quickSort($arr)
???????{
???????????$len????=?count($arr);
???????????if($len?<=?1)?{
???????????????return?$arr;
???????????}
???????????$key?=?$arr[0];
???????????$left_arr????=?array();
???????????$right_arr????=?array();

???????????for($i=1;?$i<$len;?$i++){
???????????????if($arr[$i]


?

測試方法

#ab -n 1000 http://192.168.2.107/quicksort.php

連續(xù)測試幾次,主要的性能指標(biāo)是Requests per second

?

左邊是沒有使用eAccelerator 時的情況,右邊是使用了的

連續(xù)測試10次,基本數(shù)據(jù)還是比較穩(wěn)定的。

使用了eAccelerator 時比沒使用的要好!

使用strace查看C語言級別的php源碼???????

可以看eAccelerator緩存是怎么被讀取的完成過程

?

擴(kuò)展閱讀:

1、eAccelerator提供如下的API接口和文件:(下述文件均在源碼包的doc/php/目錄下)

文件列表:

cache.php

dasm.php

encoder.php

info.php

loader.php

session.php

shared_memory.php

接口列表:

array eaccelerator_cached_scripts ()

void eaccelerator_cache_output (string $key, string $eval_code, [int $ttl = 0])

void eaccelerator_cache_page (string $key, [int $ttl = 0])

void eaccelerator_cache_result (string $key, string $code, [int $ttl = 0])

void eaccelerator_caching (boolean $flag)

void eaccelerator_clean ()

void eaccelerator_clear ()

array eaccelerator_dasm_file (mixed $filename)

mixed eaccelerator_encode (mixed $src, [mixed $prefix = ''], [string $pre_content = ''], [string $post_content = ''])

void eaccelerator_gc ()

mixed eaccelerator_get (string $key)

array eaccelerator_info ()

array eaccelerator_list_keys ()

void eaccelerator_load ()

boolean eaccelerator_lock (string $key)

void eaccelerator_optimizer (boolean $flag)

void eaccelerator_purge ()

boolean eaccelerator_put (string $key, mixed $value, [int $ttl = 0])

array eaccelerator_removed_scripts ()

boolean eaccelerator_rm (string $key)

void eaccelerator_rm_page (string $key)

boolean eaccelerator_set_session_handlers ()

boolean eaccelerator_unlock (string $key)

有關(guān)上述文檔詳細(xì)說明請參考官方文檔


下面有部分網(wǎng)友翻譯后的接口說明:

eaccelerator_put($key, $value, $ttl=0)
?? 將 $value 以 $key 為鍵名存進(jìn)緩存(php4下支持對像類型,看源碼好像zend2里不支持了),$ttl 是這個緩存的生命周期,單位是秒,省略該參數(shù)或指定為 0 表示不限時,直到服務(wù)器重啟清空為止。
?
eaccelerator_get($key)
?? 根據(jù) $key 從緩存中返回相應(yīng)的 eaccelerator_put() 存進(jìn)去的數(shù)據(jù),如果這項緩存已經(jīng)過期或不存在那么返回值是 NULL
?
eaccelerator_rm($key)
?? 根據(jù) $key 移除緩存
?
eaccelerator_gc()
?? 移除清理所有已過期的 key
?
eaccelerator_lock($key)
?? 為 $key 加上鎖定操作,以保證多進(jìn)程多線程操作時數(shù)據(jù)的同步。需要調(diào)用 eaccelerator_unlock($key) 來釋放這個鎖或等待程序請求結(jié)束時自動釋放這個鎖。
?? 例如:
?? <?php
???? eaccelerator_lock(“count”);
???? eaccelerator_put(“count”,eaccelerator_get(“count”)+1));
?? ?>
?
eaccelerator_unlock($key)
?? 根據(jù) $key 釋放鎖
?
eaccelerator_cache_output($key, $eval_code, $ttl=0)
?? 將 $eval_code 代碼的輸出緩存 $ttl 秒,($ttl參數(shù)同 eacclerator_put)
?? 例如:
??

2、PHP代碼中使用eAccelerator加速

另外,在PHPCMS里面已經(jīng)集成了對eAccelerator的支持,下面是一段來自PHPCMS里面的代碼

class?cache
{
????function?__construct()
????{
????}

????function?cache()
????{
		$this->__construct();
????}

????function?get($name)
????{
????????return?eaccelerator_get($name);
????}

????function?set($name,?$value,?$ttl?=?0)
????{
????????eaccelerator_lock($name);
????????return?eaccelerator_put($name,?$value,?$ttl);
????}

????function?rm($name)
????{
????????return?eaccelerator_rm($name);
????}

????function?clear()
????{
????????return?eaccelerator_gc();
????}
}

?

?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉