APC、eAccelerator、XCache、Opcache的区别与比较

APC、eAccelerator、XCache、Opcache都是PHP加速器。
性能方面:
zend opcache 比apc性能要好。效率大概提升 5%-9% 。

  1. opcache 加速性能 比 xcache 优秀10%-27%(include),opcache对cpu密集运算有一定的加速效果,
  2. opcache xcache 在实际应用中的加速效果(tp框架)​ 约为不加速的2-3倍
  3. php7在cpu密集型运算中 比php5.6 提升有50%左右.非cpu密集运算 php5.3性能优于 php7;

APC

APC是什么

APC全称是Alternative PHP Cache,它是PHP PECL中的一个扩展。

APC安装

 wget http://pecl.php.net/get/APC-3.0.19.tgz
$ tar xvzf APC-3.0.19.tgz
$ cd APC-3.0.19/APC-3.0.19
$ /usr/local/php/bin/phpize
$ ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
$ make
$ make install

下面我们再配置APC,因为我的PECL扩展路径改变了,所以我得移动下编译好的文件:

$ mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/apc.so /usr/local/php/lib/php/extensions/PECL

APC配置

php.ini中即可:

extension_dir = "/usr/local/php/lib/php/extensions/PECL"
extension = apc.so
; APC
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on

这样重启apache就会在phpinfo()信息中显示。

Opcache

Opcache是什么

新一代PHP加速器,由Zend公司研发,其实现原理与Xcache类似,都是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,但性能却比Xcache更加优越。

安装Opcache

wget http://pecl.php.net/get/zendopcache-7.0.2.tgz
tar xzf zendopcache-7.0.2.tgz
cd zendopcache-7.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

配置Opcache

配置文件设置,可直接在php.ini的最后添加如下内容,但在此在PHP配置文件的扫描目录php.d下配置新文件opcache.ini,易于管理,php-config-scan-dir是在编译安装PHP时定义的
vi /etc/php.d/opcache.ini

[opcache]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/opcache.so
opcache.memory_consumption=128 # 分配的内存大小,单位MB,即能够存储多少预编译的PHP代码
opcache.interned_strings_buffer=8 # interned字符串占内存大小,单位MB
opcache.max_accelerated_files=4000 # 允许缓存的文件最大数量
opcache.revalidate_freq=60 # 多长时间检查文件时间戳,以改变共享内存分配,单位为s
opcache.fast_shutdown=1 # 是否开启快速关闭队列功能,1为开启
opcache.enable_cli=1 # 允许缓存CLI下的PHP程序

检查模块安装成功:
/usr/local/php/bin/php -m |grep -i opcache

eAccelerator

eAccelerator是什么

eAccelerator的前身其实是truck-mmcache,因为开发truk-mmcache的人被Zend给招安了,所以开发eAccelerator的人继承了truk-mmcache的一些特性,设计出eAccelerator加速器。安装如下:

eAccelerator安装

$wget http://jaist.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.bz2
$ tar -jxf eaccelerator-0.9.5.tar.bz2
$ cd eaccelerator-0.9.5
$ /usr/local/php/bin/phpize
$./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
$ make
$ make install
$ mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php/lib/php/extensions/PECL

eAccelerator配置

将下面代码加入php.ini文件中

extension = eaccelerator.so
; eAccelerator
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/tmp/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"

创建缓存目录,重启apache

$mkdir /tmp/eaccelerator
$chmod 777 /tmp/eaccelerator
$/usr/local/apache/apachectl restart

在phpinfo()检查是否安装成功.

XCache

XCache是什么

XCache是国人自己开发的东西,性能比早期的eAccelerator加速器要优良。

XCache安装

$wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
$tar xvzf xcache-1.2.2.tar.gz
$cd xcache-1.2.2
$/usr/local/php/bin/phpize
$./configure –enable-xcache –enable-xcache-coverager –with-php-config=/usr/local/php/php-config
$make
$make install
$mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so /usr/local/php/lib/php/extensions/PECL

XCache配置

在php.ini添加配置信息:

extension = xcache.so
; xcache
xcache.admin.user = "admin"
xcache.admin.pass = "(执行) echo ’(你的密码)’|md5sum(得出的密文)"
;
xcache.size = 24M
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = On
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
;
xcache.coverager = On
xcache.coveragedump_directory = ""

创建缓存目录,重启apache

$mkdir /tmp/xcache
$chmod 777 /tmp/xcache
$/usr/local/apache/bin/apachectl restart
赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » APC、eAccelerator、XCache、Opcache的区别与比较

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏