gpt4 book ai didi

php - xcache 是如何工作的?代码覆盖率?木屐? OOM?

转载 作者:可可西里 更新时间:2023-11-01 13:19:42 30 4
gpt4 key购买 nike

我在整个网络上搜索了文档,包括关于 XCache website 的文档.

我是 PHP 操作码缓存和 XCache 的新手。我想要 XCache 工作原理的解释。我知道它存储已编译的 php 代码,因此不需要每次都重新编译。但是 XCache 如何知道 php 代码何时更新并因此缓存已过时?

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

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

什么是木屐? OOM?我在 XCache 管理页面界面中看到了这两者的大量数字。

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

如果有帮助,我正在使用 PHP 5.3.2、XCache 1.3.0 和 Ubuntu 10.04。

最佳答案

Xcache :

optimizes performance by removing the compilation time of PHP scripts by caching the compiled state of PHP scripts into the shm (RAM) and uses the compiled version straight from the RAM.

根据使用 PHP 5.5.3 和 Xcache 3.1.0 的观察,这是我可以推断的:

缓存器

这个模块处理两种缓存 Opcode 变量

Opcode 缓存被设计成一个简单的插件。您无法自定义决定缓存的方式,只能自定义多少:

  • xcache.count 设置指的是有多少缓存线程,并与您要使用的处理器内核数量相关——想法是 multithreading应该是最快的,但不能保证所以自己试验
  • 作为准则,有效计数值应为 2^n,如 1、2、4、8 — 0 将禁用缓存器,其他值将四舍五入为最接近的有效值
  • xcache.size 设置是指所有缓存线程的总内存。因此,每个线程大致获得 size/count 内存量
  • OOM 又名 Out of Memory , 指的是缓存线程达到其最大大小的事件

变量缓存需要在您的应用代码中使用简单的获取/设置 API。使用 xcache.var_sizexcache.var_count(类似于操作码设置)启用它后,您可以使用 xcache_set($var1)xcache_get ($var1) 在你的脚本中。

失效

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

  • 当设置为开启时,文件会被检查并重新缓存
  • 当设置为关闭时,跳过检查将保留第一个缓存版本,只要过期时间,这可以通过限制磁盘输入/输出来帮助提高性能

在您的开发环境中,最好将其保持开启,这样您就可以不断更新和检查您的代码——否则您必须刷新缓存才能看到文件更新。

法拉盛

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

由于缓存是基于 RAM 的,只要服务器重新启动,缓存就应该被刷新。

到期

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

报道者

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

  • Coverager + real life testcase framework, this include: [TOSHARE]
    • real life testcase framework, a control script with real browser. you have to write the test cases.
    • builtin Coverager + its viewer from web, to see how much script you have tested.
  • the testcase+Coverager just help you make sure all real life php web applications is running correctly when
    • after enabling XCache
    • after upgrading php4 to php5
    • after upgrading php4/5 to php6

关于php - xcache 是如何工作的?代码覆盖率?木屐? OOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431759/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com