现在的位置: 首页 > 综合 > 正文

windows环境下php使用Xcache前后的性能对比

2014年07月23日 ⁄ 综合 ⁄ 共 3121字 ⁄ 字号 评论关闭

windows7+apache2.21+php5.2.17+Xcache3.0
具体性能测试用的是apache自带的ab工具,以下是截图:测试的index.php是一个首页,其中主要是连接数据库的操作:

使用xcache之后的效果:

具体的php.ini文件中对于xcache的配置
extension = php_xcache.dll

[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($您的密码)
; 登录使用 $your_password
xcache.admin.pass = ""

[xcache]
; ini only settings, all the values here is default unlessexplained

; select low level shm/allocator scheme implemenation
xcache.shm_scheme=       "mmap"
; to disable: xcache.size=0
; to enable : xcache.size=64M etc (any size > 0) andyour system mmap allows
xcache.size =              60M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count=                1
; just a hash hints, you can always store count(items)> slots
xcache.slots=               8K
; ttl of the cache item, 0=forever
xcache.ttl  =                0
; interval of gc scanning expired items, 0=no scan, other values isin seconds
xcache.gc_interval=          0

; same as aboves but for variable cache
xcache.var_size =           4M
xcache.var_count=            1
xcache.var_slots=           8K
; default value for $ttl parameter of xcache_*() functions
xcache.var_ttl  =            0
; hard limit ttl that cannot be exceed by xcache_*() functions.0=unlimited
xcache.var_maxttl  =         0
xcache.var_gc_interval=    300

; mode:0, const string specified by xcache.var_namespace
; mode:1, $_SERVER[xcache.var_namespace]
; mode:2, uid or gid (specified by xcache.var_namespace)
xcache.var_namespace_mode=    0
xcache.var_namespace=       ""

; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory. (autocreate/overwrite)
; Use something like "/tmp/xcache" instead of "/dev/*" if you wantto turn on ReadonlyProtection
; different process group of php won't share the same/tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not filepath
xcache.mmap_path=   "/tmp/xcache"

; leave it blank(disabled) or "/tmp/phpcore/"
; make sure it's writable by php (open_basedir is notchecked)
xcache.coredump_directory =  ""
; disable cache after crash
xcache.disable_on_crash=    Off

; enable experimental documented features for each release ifavailable
xcache.experimental=       Off

; per request settings. can ini_set, .htaccess etc
xcache.cacher=              On
xcache.stat  =              On
xcache.optimizer=          Off

[xcache.coverager]
; enabling this feature will impact performance
; enabled only if xcache.coverager == On&& xcache.coveragedump_directory =="non-empty-value"

; per request settings. can ini_set, .htaccess etc
; enable coverage data collecting andxcache_coverager_start/stop/get/clean() functions
xcache.coverager=          Off
xcache.coverager_autostart =  On

; set in php ini file only
; make sure it's readable (open_basedir is checked) by coverageviewer script
xcache.coveragedump_directory = ""

从结果对比上来看,性能提升惊人呢,足足有10倍呢,实际环境如果也是这样的话,那就太好了.
装上xcache3.0之后发现网站打不开了,报出的错误是:
Debugger compile handler overriden, cannot continue
具体原因是:
xcache与zend debugger冲突,不过也有解决办法的。
将zend_debugger.expose_remotely=allowed_hosts或是allways 这一行注释掉

[zend dubugger]
zend_extension_ts="D:\PHP\ext\ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1
;zend_debugger.expose_remotely=allowed_hosts

另外xcache与zend Optimizer的ZendExtensionManager.dll也冲突,建议不要使用。
看来zend公司的产品也很挑剔啊,使用了zend gurad产品或zendOptimizer如果想装php优化器的话看来只能装APC了,之前装过windows版的eaccelerator优化器,发现大并发大访问量的时候直接会导致apache停止,所以也是不能使用的。

抱歉!评论已关闭.