首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >它是如何工作的?代码覆盖范围?木偶?奥姆斯?

它是如何工作的?代码覆盖范围?木偶?奥姆斯?
EN

Stack Overflow用户
提问于 2012-11-17 14:58:49
回答 1查看 2.7K关注 0票数 6

我在网上搜索了很多文档,包括XCache网站上的文档。

我对PHP缓存和XCache很陌生。我想解释一下XCache是如何工作的。我知道它存储已编译的php代码,这样就不需要每次都重新编译了。但是XCache如何知道什么时候php代码被更新了,因此缓存已经过时了?

我怎么知道我是否需要清除缓存?

XCache是否在服务器上编译和缓存所有php代码?如果是这样的话,可以配置吗?

木偶是什么?奥姆斯?我在XCache管理页面界面中看到了这两个方面的大量数据。

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

如果有帮助,我将使用PHP5.3.2、XCache 1.3.0和Ubuntu10.04。

EN

回答 1

Stack Overflow用户

发布于 2013-11-20 03:54:22

Xcache

通过将PHP脚本的编译状态缓存到shm ( RAM )中,并直接从RAM中使用编译版本,从而优化性能。

基于使用PHP5.5.3和Xcache 3.1.0的观察结果,我可以推断:

传道人

该模块处理两种缓存Opcode变量

Opcode缓存设计为一个简单的插入。您不能自定义它如何决定缓存,只需定制多少:

  • xcache.count设置指的是缓存线程的数量,并与您想要使用的处理器内核的数量相关--其思想是多线程应该是最快的,但没有保证您可以自己实验。
  • 作为指导原则,有效计数值为2^n,例如1,2,4,8-0将禁用传道器,其他值将被四舍五入到最近的有效值。
  • xcache.size设置引用所有缓存线程的聚合内存。因此,每个线程都获得大致的size/count内存量。
  • OOM又名失忆,是指缓存线程击中其最大大小的事件

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

失效

xcache.stat设置控制是否检查文件是否被修改,因为它是缓存的:

  • 当设置为时,文件将被检查并重新缓存。
  • 当设置为o时,检查将保留第一个缓存的版本,直到过期,这可以通过限制磁盘i/o来提高性能。

在您的dev环境中,最好将它保持在上,这样您就可以连续地更新和检查您的代码--否则您必须刷新缓存来查看文件的更新。

法拉盛

有一个web管理界面,允许您刷新一个特定的缓存。web管理员使用一个php:xcache_clear_cache(…)

由于缓存是基于RAM的,所以任何时候服务器重新启动时,都应该刷新缓存。

到期时间

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

承保人

覆盖模块,也就是代码覆盖,有点神秘。根据FeatureList,它似乎是一种用于临时管理/测试情况的诊断工具:

  • 复盖器+实际测试用例框架,包括: TOSHARE
    • 真实的测试案例框架,一个带有真实浏览器的控制脚本。你必须编写测试用例。
    • 内置覆盖器+它的网页查看器,看看你测试了多少脚本。

  • testcase+Coverager只会帮助您确保所有真实的php web应用程序在时都能正常运行。
    • 启用XCache后
    • 将php4升级到php5之后
    • 将ph4/5升级到php6之后

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13431759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档