APC没有加速PHP 5.4

时间:2012-07-28 12:01:38

标签: php apc

have had this problem before on WAMP Server and PHP 5.3,现在在Linux上用PHP 5.4面对它。

基本上,APC启用或禁用在性能上没有任何区别,尽管apc.php中的统计数据表示。

这是一个示例测试脚本,其中包含30多个Doctrine PHP文件,并将其计时:

$t = microtime(true);
include 'Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php';
printf('%.3f s', microtime(true)-$t);
  • Windows上的结果( Zend Server CE,PHP 5.4 ):0.001 s
  • Linux上的结果( PHP 5.4& APC 3.1.11 ):0.106 s

注意:即使上面的脚本没有显示,我实际上使用的是文件的完整路径,而不依赖于include_path。

无论apc.enabled0还是1,我在Linux上得到的结果都是一样的,所以看起来操作码缓存不起作用。

但是,apc.php说:

apc.php

包(来自remi repository,CentOS 6.3):

php-5.4.5-1.el6.remi.x86_64
php-pecl-apc-3.1.11-1.el6.remi.1.x86_64

APC配置:

apc.enabled=1 
apc.shm_segments=1
apc.shm_size=64M
apc.num_files_hint=1024
apc.user_entries_hint=4096
apc.ttl=7200
apc.use_request_time=1
apc.user_ttl=7200
apc.gc_ttl=3600
apc.cache_by_default=1
apc.file_update_protection=2
apc.enable_cli=1
apc.max_file_size=1M
apc.stat=1
apc.stat_ctime=0
apc.canonicalize=0
apc.write_lock=1

最后,,PHP确实将APC报告为已启用:

var_dump(extension_loaded('apc')); // (bool) true

1 个答案:

答案 0 :(得分:3)

我忘了提到问题的一个重要部分:Web服务器在Windows 7下的Linux虚拟机上运行,​​并且正在从主机上的共享文件夹中读取文件。

我注意到APC的速度变慢了,不得不stat这个共享文件夹上的文件。

将文件复制到虚拟机可以解决问题。

然而,我很惊讶apc.stat=0没有单独解决问题,我原本只期望stat文件一次,并且无条件地从内存缓存中读取所有内容。< / p>