我已经在网上搜索了XCache website上的文档。
我是PHP操作码缓存和XCache的新手。我想解释一下XCache的工作原理。我知道它存储已编译的PHP代码,因此不需要每次都重新编译。但是,XCache如何知道PHP代码何时更新,因此缓存已过期?
我如何知道是否需要清除缓存?
XCache是否在服务器上编译并缓存所有 php代码?如果是这样可以配置?
什么是木底鞋?奥姆斯?我在XCache管理页面界面中看到了这两个数字的大数字。
在代码覆盖率查看器中......百分比是什么意思?这是缓存的代码百分比吗? 命中是否表示已从缓存中读取的已编译代码行数? 行是否代表代码行的总数? 什么是ToDo专栏? 为什么有些行以红色突出显示?
我使用PHP 5.3.2,XCache 1.3.0和Ubuntu 10.04(如果有帮助的话)。
答案 0 :(得分:7)
通过删除PHP脚本的编译时间来优化性能 通过将PHP脚本的编译状态缓存到shm(RAM)和 直接从RAM使用编译版本。
基于使用 PHP 5.5.3和Xcache 3.1.0 的观察结果,这是我可以推断的:
此模块处理两种缓存 Opcode 和变量。
操作码缓存旨在成为一个简单的插件。你无法自定义它决定缓存的方式,只需要多少:
size/count
内存量变量缓存需要在应用代码中使用简单的get / set api。使用 xcache.var_size 和 xcache.var_count 启用它(类似于操作码设置)后,在脚本中使用xcache_set($var1)
和xcache_get($var1)
。
xcache.stat 设置控制是否检查文件是否已被缓存,因为它已被缓存:
在您的开发环境中,最好保持开启,这样您就可以不断更新和检查代码 - 否则您必须刷新缓存以查看文件更新。
有一个Web管理界面,允许您刷新特定的缓存。网络管理员使用php api:xcache_clear_cache(…)
。
由于缓存是基于RAM的,所以当服务器重新启动时,应该刷新缓存。
缓存项目根据xcache.ttl
和xcache.var_ttl
到期,分别控制缓存项目的生存秒数(0是无限期和默认值)。
coverager模块,又名Code Coverage,有点神秘。根据{{3}},它似乎是一个旨在为临时管理/测试情况启用的诊断工具:
- Coverager +真实生活测试用例框架,包括:[TOSHARE]
- 现实生活中的testcase框架,一个带有真实浏览器的控制脚本。你必须编写测试用例。
- 内置Coverager +来自网络的查看器,查看您测试了多少脚本。
- testcase + Coverager只是帮助您确保所有真实的php Web应用程序正常运行时
- 启用XCache后
- 将php4升级到php5后
- 将php4 / 5升级到php6后