目录

opcache

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能,存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。

PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展,可通过phpinfo查看zend OPcache信息。

  • opcache的用处

    没有使用opcache的脚本输出:

    php script => parse => compile => execute => output

    使用opcache的脚本再次输出:

    php script => opcache => execute => output

  • opcache php.ini配置:

    PHP: 运行时配置 - opcache - Manual

    使用下列推荐设置来获得较好的性能:

    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
    
  • opcache常用函数:

    • opcache_compile_file — 无需运行,即可编译并缓存 PHP 脚本。

      opcache_compile_file( string $file) : boolean
      
    • opcache_is_script_cached — Tells whether a script is cached in OPCache。

      opcache_is_script_cached( string $file) : bool
      
    • opcache_reset — 重置字节码缓存的内容

      opcache_reset() : boolean
      

APCu扩展

APC 插件曾经包含字节码和对象缓存功能,但是自从 Zend 官方推出了 Opcache 后,APC 开发者就将字节码缓存功能删掉了,后来推出了 APCu 只保留对象缓存。APCu是APC的升级版。

也就是现在的APCu扩展像是memcache和redis一样的对象缓存功能。

Yac扩展

Yac 是为PHP实现的一个基于共享内存, 无锁的内容Cache。

Yac (Yet Another cache)是鸟哥惠新宸的作品之一。

could be used to replace APC, local memcache.

经常用来代替APC,本地缓存。