xcache是​​如何工作的?代码覆盖?木屐?奥姆斯?

Leo*_*Leo 6 php opcode-cache xcache

我在网上搜索了包括XCache网站在内的文档.

我是PHP操作码缓存和XCache的新手.我想解释一下XCache的工作原理.我知道它存储编译的PHP代码,因此不需要每次都重新编译.但是,XCache如何知道PHP代码何时更新,因此缓存已过期?

我怎么知道是否需要清除缓存?

XCache是​​否编译并缓存服务器上的所有 php代码?如果是这样可以配置?

木cl是什么?奥姆斯?我在XCache管理页面界面中看到了这两者的大数字.

在代码覆盖率查看器中...百分比意味着什么?这是缓存的代码百分比吗?命中是否表示已从缓存中读取的已编译代码行数?行是否代表代码行的总数?什么是ToDo专栏?为什么有些线条用红色突出显示?

我正在使用PHP 5.3.2,XCache 1.3.0和Ubuntu 10.04,如果有帮助的话.

Mar*_*Fox 7

Xcache:

通过将PHP脚本的编译状态缓存到shm(RAM)中并通过RAM直接使用编译版本来删除PHP脚本的编译时间来优化性能.

基于使用PHP 5.5.3和Xcache 3.1.0的观察,这是我可以推断的:

cacher的

该模块处理两种缓存操作码变量.

操作码缓存的设计是一个简单的下降项.你无法自定义它决定缓存的方式,只需多少:

  • xcache.count设置指的是多少缓存线程并且与您想要使用多少个处理器核相关 - 这个想法是多线程应该是最快的,但是不能保证所以自己试验一下
  • 作为指导原则,有效计数值将为2 ^ n,如1,2,4,8 - 0将禁用cacher,其他值将四舍五入到最接近的有效值
  • xcache.size设置是指所有缓存线程的聚合内存.因此,每个线程获得size/count大量内存
  • OOM又名Out of Memory,指的是缓存线程达到最大大小的事件

变量缓存需要在应用程序代码中使用简单的get/set api.使用使它后xcache.var_sizexcache.var_count(类似操作码设置)使用xcache_set($var1),并xcache_get($var1)在您的脚本.

失效

xcache.stat设置控制是否要检查文件是否被修改,因为它被缓存:

  • 设置为On文件时,选中并重新缓存
  • 当设置为Off时,检查将保留第一个缓存版本,只要到期时间,这可以通过限制磁盘i/o 帮助提高性能

在您的开发环境中,最好将其保持打开状态,以便您可以连续更新和检查代码 - 否则您必须刷新缓存以查看文件更新.

法拉盛

有一个Web管理界面,允许您刷新特定的缓存.网络管理员使用php api : xcache_clear_cache(…).

由于缓存是基于RAM的,因此服务器重新启动时应刷新缓存.

呼气

缓存项目根据xcache.ttl并且xcache.var_ttl分别控制缓存项目的生存秒数(0是无限期和默认值).

Coverager

coverager模块,即代码覆盖,有点神秘.根据FeatureList,它似乎是一个诊断工具,旨在为临时管理/测试情况启用:

  • Coverager +真实生活测试用例框架,包括:[TOSHARE]
    • 现实生活中的testcase框架,一个带有真实浏览器的控制脚本.你必须编写测试用例.
    • 内置Coverager +来自网络的查看器,查看您测试了多少脚本.
  • testcase + Coverager只是帮助你确保所有现实生活中的php web应用程序运行正常
    • 启用XCache后
    • 将php4升级到php5之后
    • 将php4/5升级到php6之后