php - 如何使 APC(PHP 缓存)工作?

标签 php caching centos apc

我读过有关 APC 的文章,它可以加速多个 php 文件站点。所以我在 PHP 中有这个包含许多文件的特定项目,我发现 require_once 和仅解析类定义(不执行它们)花费了大部分时间。

所以我在我的 CentOS 5 服务器上安装了 APC。我将 apc.php 移动到我的网络服务器并显示

Hits: 1 (50.0%)
Misses: 1 (50.0%)

Cached Files    1 (281.1 KBytes)

而且我可以访问网站并更改子页面等等,而 apc.php 仍然只显示一个缓存文件??

在 phpinfo() 中显示:

APC Support enabled

我不知道该怎么办。 APC 是否正常工作(如 phpinfo() sais)?在我的网站上浏览了一些页面后,只有一个缓存文件并不多。

以及如何诊断错误并确保 APC 正常工作?我浏览过

apc.mmap_file_mask /tmp/apc.QnLqNf /tmp/apc.QnLqNf

目录/tmp 但我没有任何 apc 文件,就像 phpinfo 中所说的那样。

请帮助我检查 APC 是否正常工作,如果不正常,可能是什么问题。

最佳答案

APC可以通过两种方式使用:

  1. 作为操作码缓存。您启用了支持,所以这是有效的;和
  2. 作为通用缓存。您必须明确使用 API为此。

(1) 是主要的好处。它通过存储“编译”脚本的操作码结果来减少脚本执行时间。

至于它的工作原理,来自 installation instructions :

Note: On Windows, APC needs a temp path to exist, and be writable by the web server. It checks TMP, TEMP, USERPROFILE environment variables in that order and finally tries the WINDOWS directory if none of those are set.

因此您在 CentOS 上不需要它(或查看任何事件)。

话虽这么说,require/include 比 require_once/include_once/autoload 要好,但只有当您对数百个文件执行此操作时才有意义。

关于php - 如何使 APC(PHP 缓存)工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1495619/

相关文章:

php - 在 PHP 中创建不带括号的函数,例如 'echo'

php - 如何从特定字符中剪切动态字符串并将剩余部分保留在变量中

php - PHP中不使用父类时是否称为多态性?

javascript - 当我试图阻止多次单击提交时,验证不起作用

Android WebView 在缓存路径中下载图片

Mysql 命令没有返回错误并且不导入 sql 文件。为什么?

caching - 内存缓存和内存数据库之间的区别

java - 并发环境下的Ehcache ReentrantReadWriteLock

php - 我无法在服务器上托管我的 Laravel 应用程序?

linux - 如何读取 var/lib/rpm/Packages 内容