我在网上搜索了包括XCache网站在内的文档。
我是PHP操作码缓存和XCache的新手。 我想解释一下XCache是如何工作的。 我知道它存储编译的 php 代码,因此不需要每次都重新编译。 但是XCache如何知道php代码何时更新,因此缓存已过时?
我如何知道是否需要清除缓存?
XCache 是否编译并缓存服务器上的所有php 代码? 如果是这样,可以配置吗?
什么是木屐?哎呀? 我在XCache管理页面界面中看到这两个数字很大。
在代码覆盖率查看器中...百分比是什么意思? 这是已缓存代码的百分比吗? 命中数是否意味着从缓存中读取的已编译代码的行数? 行数是指代码行数吗? 待办事项列有什么用? 为什么有些行以红色突出显示?
如果有帮助,我正在使用PHP 5.3.2,XCache 1.3.0和Ubuntu 10.04。
Xcache:
通过删除 PHP 脚本的编译时间来优化性能 通过将PHP脚本的编译状态缓存到shm(RAM)中,以及 使用直接从 RAM 编译的版本。
根据使用PHP 5.5.3 和 Xcache 3.1.0的观察,我可以推断出:
缓存器
该模块处理两种缓存操作码和变量。
操作码缓存被设计为一个简单的插入。您无法自定义它决定缓存的方式,只能自定义多少:
- xcache.count设置是指有多少个缓存线程,并与你想要使用的处理器内核数量相关——这个想法是多线程应该是最快的,但没有保证,所以自己尝试一下
- 作为准则,有效计数值将为 2^n,如 1、2、4、8 — 0 将禁用缓存器,其他值将四舍五入到最接近的有效值
-
xcache.size设置是指所有缓存线程的聚合内存。因此,每个线程获得大约
size/count
内存量 - OOM又名内存不足,是指缓存线程达到其最大大小的事件
变量缓存需要在应用代码中使用简单的获取/设置 API。使用xcache.var_size和xcache.var_count(类似于操作码设置)启用它后,您可以在脚本中使用xcache_set($var1)
和xcache_get($var1)
。
失效
xcache.stat设置控制是否检查文件在缓存后是否被修改:
- 当设置为"打开文件"时,将检查并重新缓存
- 当设置为Off跳过时,检查将保留第一个缓存版本,只要过期时间,这可以通过限制磁盘 I/O 来帮助提高性能
在开发环境中,最好将其保持打开状态,以便可以不断更新和检查代码,否则必须刷新缓存才能查看文件更新。
冲洗
有一个Web管理界面,允许您刷新特定的缓存。网络管理员使用 php api:xcache_clear_cache(…)
。
由于缓存是基于 RAM 的,因此每当服务器重新启动时,都应刷新缓存。
呼气
缓存项根据xcache.ttl
和xcache.var_ttl
过期,它们分别控制缓存项的生存秒数(0 表示无限期,默认值)。
覆盖者
覆盖率模块,又名代码覆盖率,有点神秘。根据功能列表,它似乎是一个旨在为临时管理/测试情况启用的诊断工具:
- 覆盖者+现实生活中的测试用例框架,这包括:[TOSHARE]
- 现实生活中的测试用例框架,一个带有真实浏览器的控制脚本。 你必须编写测试用例。
- 内置覆盖率 + 来自 Web 的查看器,以查看您测试了多少脚本。
- 测试用例+覆盖率只是帮助您确保所有现实生活中的php Web应用程序在以下情况下正常运行
- 启用 XCache 后
- 将 PHP4 升级到 PHP5 之后
- 将 PHP4/5 升级到 PHP6 之后