x缓存 它是如何工作的?代码覆盖率?堵塞?哎呀?



我在网上搜索了包括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_sizexcache.var_count(类似于操作码设置)启用它后,您可以在脚本中使用xcache_set($var1)xcache_get($var1)

失效

xcache.stat设置控制是否检查文件在缓存后是否被修改:

  • 当设置为"打开文件"时,将检查并重新缓存
  • 当设置为Off跳过时,检查将保留第一个缓存版本,只要过期时间,这可以通过限制磁盘 I/O 来帮助提高性能

在开发环境中,最好将其保持打开状态,以便可以不断更新和检查代码,否则必须刷新缓存才能查看文件更新。

冲洗

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

由于缓存是基于 RAM 的,因此每当服务器重新启动时,都应刷新缓存。

呼气

缓存项根据xcache.ttlxcache.var_ttl过期,它们分别控制缓存项的生存秒数(0 表示无限期,默认值)。

覆盖者

覆盖率模块,又名代码覆盖率,有点神秘。根据功能列表,它似乎是一个旨在为临时管理/测试情况启用的诊断工具:

  • 覆盖者+现实生活中的测试用例框架,这包括:[TOSHARE]
    • 现实生活中的测试用例框架,一个带有真实浏览器的控制脚本。 你必须编写测试用例。
    • 内置覆盖率 + 来自 Web 的查看器,以查看您测试了多少脚本。
  • 测试用例+覆盖率只是帮助您确保所有现实生活中的php Web应用程序在以下情况下正常运行
    • 启用 XCache 后
    • 将 PHP4 升级到 PHP5 之后
    • 将 PHP4/5 升级到 PHP6 之后

相关内容

  • 没有找到相关文章

最新更新