php加速緩存器opcache,apc,xcache,eAccelerator原理與配置方法實(shí)例分析
本文實(shí)例講述了php加速緩存器opcache,apc,xcache,eAccelerator原理與配置方法。分享給大家供大家參考,具體如下:
一、opcache
opcache 通過(guò)將 PHP 腳本預(yù)編譯的字節(jié)碼存儲(chǔ)到共享內(nèi)存中來(lái)提升 PHP 的性能, 存儲(chǔ)預(yù)編譯字節(jié)碼的好處就是 省去了每次加載和解析 PHP 腳本的開銷。
PHP 5.5.0 及后續(xù)版本中已經(jīng)綁定了 opcache 擴(kuò)展。 對(duì)于 PHP 5.2,5.3 和 5.4 版本可以使用PECL擴(kuò)展中的 opcache 庫(kù)。
windows下的php擴(kuò)展下載地址:
http://windows.php.net/downloads/pecl/releases/
打開php.ini文件,找到[opcache]
; dll地址 extension=php_opcache.dll ; 開關(guān)打開 opcache.enable=1 ; 開啟CLI opcache.enable_cli=1 ; 可用內(nèi)存, 酌情而定, 單位為:Mb opcache.memory_consumption=128 ; Zend Optimizer + 暫存池中字符串的占內(nèi)存總量.(單位:MB) opcache.interned_strings_buffer=8 ; 對(duì)多緩存文件限制, 命中率不到 100% 的話, 可以試著提高這個(gè)值 opcache.max_accelerated_files=10000 ; opcache 會(huì)在一定時(shí)間內(nèi)去檢查文件的修改時(shí)間, 這里設(shè)置檢查的時(shí)間周期, 默認(rèn)為 2, (單位:秒) opcache.revalidate_freq=1 ; 打開快速關(guān)閉, 打開這個(gè)在PHP Request Shutdown的時(shí)候回收內(nèi)存的速度會(huì)提高 opcache.fast_shutdown=1
二、APC
Alternative PHP Cache (APC) 是一個(gè)開放自由的PHP opcode 緩存。它的目標(biāo)是提供一個(gè)自由、 開放,和健全的框架用于緩存和優(yōu)化PHP的中間代碼。
下載apc擴(kuò)展dll,選擇你對(duì)應(yīng)的PHP版本
http://windows.php.net/downloads/pecl/releases/apc/
把下載的php_apc.dll放入php的ext擴(kuò)展目錄下。
打開php.ini文件,配置如下:
[apc] extension=php_apc.dll apc.enabled=1 ; 共享內(nèi)存塊的數(shù)目 apc.shm_segments=1 ; 共享內(nèi)存塊的大小(單位:MB) apc.shm_size=64 ; 優(yōu)化級(jí)別,更高的值則使用更主動(dòng)的優(yōu)化 apc.optimization=1 ; 源文件的數(shù)目,不確定設(shè)置為0 apc.num_files_hint=0 ; 緩存條目在緩沖區(qū)中允許逗留的秒數(shù) apc.ttl=7200 ; 針對(duì)每個(gè)用戶緩存條目在緩沖區(qū)中允許逗留的秒數(shù) apc.user_ttl=7200 ; 緩存條目在垃圾回收表中能夠存在的秒數(shù) apc.gc_ttl=7200 ; 文件寫鎖 apc.write_lock=on
三、xcache
xcache是一個(gè)開源的 opcode 緩存器/優(yōu)化器。
下載xcache,選擇對(duì)應(yīng)PHP版本的xcache
http://xcache.lighttpd.net/pub/Releases/
把php_xcache.dll放到php的ext目錄下。
打開php.ini,配置如下:
[xcache-common] extension = php_xcache.dll [xcache.admin] xcache.admin.enable_auth = On xcache.admin.user = "admin" xcache.admin.pass = "md5后你的密碼" [xcache] ; 選擇底層內(nèi)存共享實(shí)現(xiàn)方案 xcache.shm_scheme = "mmap" xcache.size = 128M ; 設(shè)置為CPU數(shù) xcache.count = 1 ; 只是個(gè)參考值 xcache.slots = 8K ; 緩存時(shí)間 xcache.ttl = 1200 ; 垃圾回收的時(shí)間間隔 xcache.gc_interval = 1200 ; 同上,針對(duì)變量緩存設(shè)置 xcache.var_size = 4M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 1200 ; 變量最大緩存時(shí)間 xcache.var_maxttl = 7200 xcache.var_gc_interval = 1200 xcache.var_namespace_mode = 0 xcache.var_namespace = "" xcache.readonly_protection = Off ; 對(duì)于win系統(tǒng),這里不是文件路徑 xcache.mmap_path = "xcache" xcache.coredump_directory = "" xcache.coredump_type = 0 xcache.disable_on_crash = Off xcache.experimental = Off xcache.cacher = On xcache.stat = On xcache.optimizer = Off [xcache.coverager] xcache.coverager = Off xcache.coverager_autostart = On xcache.coveragedump_directory = ""
四、eAccelerator
eAccelerator是一個(gè)自由開放源碼php加速器,優(yōu)化和動(dòng)態(tài)內(nèi)容緩存,提高了php腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對(duì)服務(wù)器的開銷幾乎完全消除。 它還有對(duì)腳本起優(yōu)化作用,以加快其執(zhí)行效率。
下載eAccelerator
http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds
把下載到的eAccelerator_ts.dll放到php的ext目錄下。
打開php.ini,配置如下:
[eAccelerator] extension="eAccelerator_ts.dll" eaccelerator.shm_size="16" eaccelerator.cache_dir="設(shè)置緩存目錄" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.log_file = "設(shè)置日志文件" 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"
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php緩存技術(shù)總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語(yǔ)法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺談ThinkPHP中initialize和construct的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談ThinkPHP中initialize和construct的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
基于PHP實(shí)現(xiàn)敏感詞過(guò)濾功能
后端同學(xué)在做一些社區(qū)論壇類型項(xiàng)目時(shí)候,可能會(huì)繞不開敏感詞的過(guò)濾這個(gè)功能,特別是在微信小程序中,如果主營(yíng)類目被定義為【社交】 那么敏感詞、圖片、視頻的各種過(guò)濾功能是逃不掉的,否則是無(wú)法上線的,下面就以PHP代碼為例,分析一下這個(gè)功能的具體實(shí)現(xiàn)2023-10-10
php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問(wèn)題小結(jié)
這篇文章主要給大家介紹了關(guān)于php多進(jìn)程模擬并發(fā)事務(wù)產(chǎn)生的問(wèn)題,文中通過(guò)示例代碼介紹的非常想吃詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
快速解決PHP調(diào)用Word組件DCOM權(quán)限的問(wèn)題
下面小編就為大家分享一篇快速解決PHP調(diào)用Word組件DCOM權(quán)限的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
如何獲知PHP程序占用多少內(nèi)存(memory_get_usage)
想要知道編寫的 PHP 腳本需要占用多少內(nèi)存么?很簡(jiǎn)單,直接使用 PHP 查看當(dāng)前分配給 PHP 腳本的內(nèi)存的函數(shù) memory_get_usage() 就可以了2012-09-09
phpword插件導(dǎo)出word文件時(shí)中文亂碼問(wèn)題處理方案
PHPWord是一個(gè)可以把相關(guān)文件生成word文檔的插件了,但由于是老外開發(fā)的對(duì)于gbk支持不好,所以我們?cè)趯?dǎo)出帶有中文的word時(shí)會(huì)出現(xiàn)亂碼問(wèn)題,下面本文就PHPWord中文亂碼問(wèn)題介紹一些解決方法。2014-08-08
php $_SERVER["REQUEST_URI"]獲取值的通用解決方法
在 PHP 眾多預(yù)定義服務(wù)器變量中,$_SERVER["REQUEST_URI"] 算是經(jīng)常用到的,但是這個(gè)變量只有 apache 才支持,因此,我們需要一個(gè)更加通用的方式來(lái)獲取 REQUEST_URI 的值,本文就是結(jié)束這一問(wèn)題的解決方案。2010-06-06

