IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用Zend OPCache来提升PHP的性能

    mckee发表于 2015-10-07 20:57:56
    love 0

    Zend OPcache简介:
    Zend OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
    在 PHP 5.5、5.6 版本中 OpCache 已内建,编译安装时使用 --enable-opcache 即可。如下检查是否已经安装OPcache:

    php -m | grep "Zend OPcache"

    如果尚未安装,可按照如下Zend OPCache手动安装:
    #如果源码不在了,可下载https://github.com/zendtech/ZendOptimizerPlus/archive/master.zip
    cd /usr/src/php-5.6.9/ext/opcache
    /usr/local/php5.6/bin/phpize
    ./configure --with-php-config=/usr/local/php5.6/bin/php-config
    make && make install

    php.ini中添加推荐Zend OPCache配置(具体配置说明见底部参考):
    zend_extension=/usr/local/php5.6/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
    
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.enable_cli=1

    重启php-fpm:
    service php-fpm restart

    通过phpinfo()函数查看Zend OPCache运行状态:
    zend-opcache1.png
    zend-opcache2.png推荐OPCache图形化效果工具:
    • 拥有漂亮的图形化界面的项目 : https://github.com/PeeHaa/OpCacheGUI
    • 单文件, 方便部署的项目: https://github.com/rlerdorf/opcache-status

    使用OPcache注意事项:
    当改变PHP文件代码后,并不能立即看到效果,这视opcache.revalidate_freq的更新周期而定,所以建议在项目更新执行自动化脚本利用opcache_reset()函数自动重置opcache。OPcache总共提供了如下几个函数:
    opcache_compile_file — 无需运行,即可编译并缓存 PHP 脚本
    opcache_get_configuration — 获取缓存的配置信息
    opcache_get_status — 获取缓存的状态信息
    opcache_invalidate — 废除脚本缓存
    opcache_reset — 重置字节码缓存的内容

    参考:
    • 关于Zend OPCache配置说明:http://php.net/manual/zh/opcache.configuration.php



沪ICP备19023445号-2号
友情链接