我在网上搜索了很多文档,包括XCache网站上的文档。
我对PHP缓存和XCache很陌生。我想解释一下XCache是如何工作的。我知道它存储已编译的php代码,这样就不需要每次都重新编译了。但是XCache如何知道什么时候php代码被更新了,因此缓存已经过时了?
我怎么知道我是否需要清除缓存?
XCache是否在服务器上编译和缓存所有php代码?如果是这样的话,可以配置吗?
木偶是什么?奥姆斯?我在XCache管理页面界面中看到了这两个方面的大量数据。
在代码覆盖查看器中..。百分比是什么意思?这是缓存的代码的百分比吗?命中是否意味着已从缓存中读取的编译代码行数?行是否意味着代码的总行数?ToDo列的作用是什么?为什么有些行用红色突出显示?
如果有帮助,我将使用PHP5.3.2、XCache 1.3.0和Ubuntu10.04。
发布于 2013-11-20 03:54:22
通过将PHP脚本的编译状态缓存到shm ( RAM )中,并直接从RAM中使用编译版本,从而优化性能。
基于使用PHP5.5.3和Xcache 3.1.0的观察结果,我可以推断:
传道人
该模块处理两种缓存Opcode和变量。
Opcode缓存设计为一个简单的插入。您不能自定义它如何决定缓存,只需定制多少:
size/count内存量。变量缓存需要在应用程序代码中使用简单的get/set api。在使用xcache.var_size和xcache.var_count (类似于Opcode设置)启用它之后,您可以在脚本中使用xcache_set($var1)和xcache_get($var1)。
失效
xcache.stat设置控制是否检查文件是否被修改,因为它是缓存的:
在您的dev环境中,最好将它保持在上,这样您就可以连续地更新和检查您的代码--否则您必须刷新缓存来查看文件的更新。
法拉盛
有一个web管理界面,允许您刷新一个特定的缓存。web管理员使用一个php:xcache_clear_cache(…)。
由于缓存是基于RAM的,所以任何时候服务器重新启动时,都应该刷新缓存。
到期时间
缓存项根据xcache.ttl和xcache.var_ttl过期,它们分别控制缓存项存在的秒数(0是不定的,默认值是默认的)。
承保人
覆盖模块,也就是代码覆盖,有点神秘。根据FeatureList,它似乎是一种用于临时管理/测试情况的诊断工具:
https://stackoverflow.com/questions/13431759
复制相似问题