zoukankan      html  css  js  c++  java
  • PHP扩展--opcache安装及配置

    简介

    Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具。现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache。

    Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。

    当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache 的目地是避免重复编译,减少 CPU 和内存开销。如果动态内容的性能瓶颈不在于 CPU 和内存,而在于 I/O 操作,比如数据库查询带来的磁盘 I/O 开销,那么 opcode cache 的性能提升是非常有限的。

    现代操作码缓存器(Optimizer+,APC2.0+,其他)使用共享内存进行存储,并且可以直接从中执行文件,而不用在执行前“反序列化”代码。这将带来显着的性能加速,通常降低了整体服务器的内存消耗,而且很少有缺点。

    opcache安装

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

    配置php.ini

    [Zend Opcache]
    zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
    opcache.enable=1 ;启用操作码缓存
    opcache.enable_cli=1 ;仅针对CLI环境启用操作码缓存
    opcache.memory_consumption=128 ;共享内存大小,单位MB
    opcache.interned_strings_buffer=8 ;存储临时字符串的内存大小,单位MB
    opcache.max_accelerated_files=4000 ;哈希表中可存储的脚本文件数量上限
    ;opcache.max_wasted_percentage=5 ;浪费内存的上限,以百分比计
    ;opcache.use_cwd=1;附加改脚本的工作目录,避免同名脚本冲突
    opcache.validate_timestamps=1 ;每隔revalidate_freq 设定的秒数 检查脚本是否更新
    opcache.revalidate_freq=60 ;
    ;opcache.revalidate_path=0 ;如果禁用此选项,在同一个 include_path 已存在的缓存文件会被重用
    ;opcache.save_comments=1 ;禁用后将也不会加载注释内容
    opcache.fast_shutdown=1 ;一次释放全部请求变量的内存
    opcache.enable_file_override=0 ; 如果启用,则在调用函数file_exists(), is_file() 以及 is_readable() 的时候, 都会检查操作码缓存
    ;opcache.optimization_level=0xffffffff ;控制优化级别的二进制位掩码。
    ;opcache.inherited_hack=1 ;PHP 5.3之前做的优化
    ;opcache.dups_fix=0 ;仅作为针对 “不可重定义类”错误的一种解决方案。
    ;opcache.blacklist_filename="" ;黑名单文件为文本文件,包含了不进行预编译优化的文件名
    ;opcache.max_file_size=0 ;以字节为单位的缓存的文件大小上限
    ;opcache.consistency_checks=0 ;如果是非 0 值,OPcache 将会每隔 N 次请求检查缓存校验和
    opcache.force_restart_timeout=180 ; 如果缓存处于非激活状态,等待多少秒之后计划重启。
    ;opcache.error_log="" ;OPcache模块的错误日志文件
    ;opcache.log_verbosity_level=1 ;OPcache模块的日志级别。致命(0)错误(1) 警告(2)信息(3)调试(4)
    ;opcache.preferred_memory_model="" ;OPcache 首选的内存模块。可选值包括: mmap,shm, posix 以及 win32。
    ;opcache.protect_memory=0 ;保护共享内存,以避免执行脚本时发生非预期的写入。 仅用于内部调试。
    ;opcache.mmap_base=null ;在Windows 平台上共享内存段的基地址
    

    运行结果

    用Opcache Control Panel 查看执行情况

    ocp.php





     
  • 相关阅读:
    互联网秒杀设计
    生产者消费者模式实现
    Ping CAP CTO、Codis作者谈redis分布式解决方案和分布式KV存储
    VIM使用学习笔记 : 按键说明
    Cookie的有效访问路径
    简单的Cookie记录浏览记录案例
    认识Cookie和状态管理
    Java异常
    Java接口基础
    String常用方法
  • 原文地址:https://www.cnblogs.com/linzhenjie/p/5485475.html
Copyright © 2011-2022 走看看