zoukankan      html  css  js  c++  java
  • PHP ~与各加速工具的性能对比~

    参与测试的加速器:Xcache,Opcache,hhvm

     

    Xcache简介

    前面已经介绍了PHP加速器的原理和功用(参见LAMP架构之PHP-FPM 服务器),xcache作为目前使用广泛的PHP加速器之一,其性能比早期的eAccelerator加速器要优良,故本次就对比一下PHP程序在执行时加速器xcache对其的性能影响。

    安装xcache

    复制代码
    # 安装
    tar xf xcache-3.0.3.tar.gz
    cd xcache-3.0.3
    /usr/local/php/bin/phpize # xcache是作为php的外接模块安装的
    ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
    make && make install
    # 安装结束时,会出现类似如下行:
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
    # 编辑php.ini,整合php和xcache:
    # 首先将xcache提供的样例配置导入php.ini
    mkdir /etc/php.d # 这是前面安装PHP时配置的配置文件扫描目录
    cp xcache.ini /etc/php.d # xcache.ini文件在xcache的源码目录中。
    # 接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:
    extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
    # 如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位。
    # 查看xcache是否已安装成功:
    /usr/local/php/bin/php -m |grep -i xcache
    复制代码

    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
    # 配置文件设置,可直接在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
    复制代码

    hhvm简介

    HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点;

    hhvm将PHP代码编译转换成C++程序来执行,执行效率得到显著提升;

    根据 Facebook透漏,HHVM在速度方面获得了显著改进,比目前使用的PHP解释器快60%,而使用内存减少90%

    安装hhvm

    因为目前hhvm还处以研发阶段,国内用于生产环境的还很少,安装所需的环境比较复杂(如CentOS6.5下的boost-system和boost-filesystem的版本就过低),故本人还在调试测试阶段,等出了测试结果,再将hhvm的测试结果一并贴出。

    测试步骤

    复制代码
    # 另找一台虚拟机,对HTTPD服务器(192.168.1.110)进行压力测试
    # 测试工具使用Apache自带的基准测试工具ab即可
    # 测试方法如下:
    ab -c 20 -n 2000 http://192.168.1.110:8080/index.php
    # 注:测试采用20并发,在不影响访问的情况下,查看xcache加速器的加速效果;测试页面使用上一讲刚部署的phpMyAdmin的登录页面index.php即可
    # 注:为了更好的测试出PHP加速器的缓存特性,可连续多测试几次,得到稳定值
    复制代码

    测试结果对比

    wKiom1NGEwaQ9ENgAA0tM6AlzIM464.jpg

    从上图可以看出,PHP加速器对PHP程序的执行过程加速明显;综合每秒的请求数和PHP服务器的负载来看:

    xcache使得PHP程序的执行效率提升了3-4倍;

    Opcache使得PHP程序的执行效率提升了6-7倍;

    据说hhvm对PHP程序的加速效果更加强悍,敬请期待!

  • 相关阅读:
    OSG-提示“error reading file e:1.jpg file not handled”
    OSG-加载地球文件报0x00000005错误,提示error reading file simple.earth file not handled
    QT-找开工程后,最上方提示the code model could not parse an included file, which might lead to incorrect code completion and highlighting, for example.
    我的书《Unity3D动作游戏开发实战》出版了
    java中无符号类型的第三方库jOOU
    Windows批处理备份mysql数据
    使用 DevTools 时,通用Mapper经常会出现 class x.x.A cannot be cast to x.x.A
    Java版本,Java版本MongoDB驱动,驱动与MongoDB数据库,Spring之间的兼容性
    Jrebel本地激活方法
    wget下载指定网站目录下的所有内容
  • 原文地址:https://www.cnblogs.com/grimm/p/10384940.html
Copyright © 2011-2022 走看看