我已经在网上搜索了包括XCache website在内的文档。

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

我如何知道是否需要清除缓存?

XCache是​​否在服务器上编译并缓存所有php代码?如果可以,可以配置它吗?

什么是木s? OOM?我在XCache Admin页面界面中看到大量的这两个数字。

在代码覆盖率查看器中...百分比是什么意思?这是已缓存的代码的百分比吗?
命中次数是否意味着已从缓存中读取的已编译代码的行数?
行数是否意味着代码的总行数?
“待办事项”列有什么用?
为什么有些行用红色突出显示?

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

最佳答案

Xcache:



基于使用 PHP 5.5.3和Xcache 3.1.0 的观察,我可以得出以下结论:

卡彻

这个模块处理两种缓存 Opcode 变量

操作码缓存被设计为简单的插件。您无法自定义其决定缓存的方式,只能自定义多少:

  • xcache.count 设置是指多少个缓存线程,并与您要使用的处理器核心相关联-这个想法是multithreading应该是最快的,但不能保证一定要自己尝试
  • 作为准则,有效的计数值应为2 ^ n,例如1、2、4、8 — 0将禁用高速缓存,而其他值将四舍五入为最接近的有效值
  • xcache.size 设置是指所有缓存线程的聚合内存。因此,每个线程大致获得size/count的内存量
  • OOM aka Out of Memory,是指缓存线程达到最大大小的事件

  • 可变缓存需要在您的应用程序代码中使用简单的get/set api。使用 xcache.var_size xcache.var_count (类似于Opcode设置)启用它后,您可以在脚本中使用xcache_set($var1)xcache_get($var1)

    无效

    xcache.stat 设置控制是否检查文件是否由于缓存而被修改:
  • 设置为时,检查文件并重新缓存
  • 设置为时,关闭会跳过该检查,将保留第一个缓存的版本,直到到期时间为止,这可以通过限制磁盘I/O
  • 来提高性能。

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

    冲洗

    有一个Web管理界面,可让您刷新特定的缓存。网络管理员使用php API:xcache_clear_cache(…)

    由于无论何时服务器重新启动,高速缓存都是基于RAM的,因此应刷新高速缓存。

    期满

    缓存的项目根据xcache.ttlxcache.var_ttl过期,它们分别控制缓存的项目生存的秒数(0是不确定的,是默认值)。

    掩护者

    Coverager模块又名Code Coverage,有点神秘。根据FeatureList的说法,它似乎是一种诊断工具,旨在用于临时管理/测试情况:

    09-07 12:52