zoukankan      html  css  js  c++  java
  • opcache

    opcache是php内置得一个加速模块,php解析PHP文件得时候,如果发现该文件对应得byte-code存储再内存中,省去编译过程直接执行内存中得文件。(提升性能10%)
    #/etc/php7/fpm/php.ini 
    
    validate_timestamps=1  
    revalidate_freq=0
    memory_consumption=64
    max_accelerated_files=4000 
    opcache.fast_shutdown=0
    validate_timestamps设置0,PHP 解析器只要发现内存中有对应 PHP 文件的 byte-code 内容就会加载.你更新了服务器得代码后php并不会直接执行新得代码。
    假如 validate_timestamps 等于 1,PHP 解析器从内存中获取某个 PHP 文件对应的byte-code,会通过一定的方法比较 byte-code 内容是不是最新的(读取文件系统),假如比较后发现 byte-code 已经过期,应该重新编译生成。
    需要注意,PHP 解析器不是每次都会去检查(一切为了效率),检查的频率取决于 revalidate_freq 参数( 0 表示每次都检查)。
    
    memory_consumption 这个参数很好理解,代表这块内存区开辟的大小,另外需要注意不同 PHP SAPI 内存区不是共享的,
    就是说同一个 PHP 文件,运行在命令行模式或者 PHP-FPM 模式下,对应的 byte-code 会存储在不同的内存区中。
    max_accelerated_files 表示内存区最大能存储的 PHP 文件数量。
    
    validate_timestamps建议这个生产环境不开启,开发环境开启。
    不开启:就是不校验php文件最近有没有修改过,一直走byte-code中得代码,主要是为了生产环境得执行效率。下面是此时解决文件更新得方法
    第一种方法就是调用 opcache_reset() 函数,
    第二种重启 PHP SPAI,比如运行service php5-fpm restart等。
    但是上面两种方式都太凶残,假如开发的项目频繁上线,每次缓存区都要全部清空,可以使用opcache_invalidate()函数更新特定文件的缓存。
    

      

  • 相关阅读:
    常用的正则表达式
    Spring
    Hibernate-04
    Hibernate-03
    Hibernate-02
    Hibernate-01
    装饰器(python)
    软件工程之小组选题报告
    小组项目之需求分析与原型设计
    关于group_concat函数拼接字符超长的问题
  • 原文地址:https://www.cnblogs.com/xin-jun/p/11230601.html
Copyright © 2011-2022 走看看