我已经在网上搜索了包括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 和变量。
操作码缓存被设计为简单的插件。您无法自定义其决定缓存的方式,只能自定义多少:
size/count
的内存量可变缓存需要在您的应用程序代码中使用简单的get/set api。使用 xcache.var_size 和 xcache.var_count (类似于Opcode设置)启用它后,您可以在脚本中使用
xcache_set($var1)
和xcache_get($var1)
。无效
xcache.stat 设置控制是否检查文件是否由于缓存而被修改:
在您的开发环境中,最好将其保留为在上,以便您可以连续更新和检查代码-否则,您必须刷新缓存以查看文件更新。
冲洗
有一个Web管理界面,可让您刷新特定的缓存。网络管理员使用php API:
xcache_clear_cache(…)
。由于无论何时服务器重新启动,高速缓存都是基于RAM的,因此应刷新高速缓存。
期满
缓存的项目根据
xcache.ttl
和xcache.var_ttl
过期,它们分别控制缓存的项目生存的秒数(0是不确定的,是默认值)。掩护者
Coverager模块又名Code Coverage,有点神秘。根据FeatureList的说法,它似乎是一种诊断工具,旨在用于临时管理/测试情况: