为什么我的所有文件都没有使用apc操作代码缓存?

时间:2011-12-17 15:15:24

标签: php caching apc

我正在使用APC(3.1.9)和Zend Framework,但是,只有一堆文件被缓存(类似于10/400)。

你有什么想法吗?我在debian安装中使用工厂选项。

编辑:看起来唯一的opcached文件是我用require '';手动调用的文件,但是我的自动加载器加载的文件不是。{有什么想法吗?


运行时设置

apc.cache_by_default    1
apc.canonicalize    1
apc.coredump_unmap  0
apc.enable_cli  0
apc.enabled 1
apc.file_md5    0
apc.file_update_protection  2
apc.filters 
apc.gc_ttl  3600
apc.include_once_override   0
apc.lazy_classes    0
apc.lazy_functions  0
apc.max_file_size   1M
apc.mmap_file_mask  
apc.num_files_hint  1000
apc.preload_path    
apc.report_autofilter   1
apc.rfc1867 0
apc.rfc1867_freq    0
apc.rfc1867_name    APC_UPLOAD_PROGRESS
apc.rfc1867_prefix  upload_
apc.rfc1867_ttl 3600
apc.serializer  default
apc.shm_segments    1
apc.shm_size    32M
apc.slam_defense    1
apc.stat    1
apc.stat_ctime  0
apc.ttl 0
apc.use_request_time    1
apc.user_entries_hint   4096
apc.user_ttl    0
apc.write_lock  1

这里是apc.php的截图 apc.php

获取opcached的文件 php code

index.php(ZF)我需要文件并在Zend_Loader_Autoloader中注册自动加载器。

opcached files

2 个答案:

答案 0 :(得分:1)

自动加载的最大缺点之一可能是op cache不会像人们希望的那样缓存自动加载的文件(关于autoload是运行时与include / require是编译时间。或者不是。我不声称理解它。 )。阅读更多here

虽然我从未尝试过,但我想知道是否通过在自动加载器中调用apc_compile_file()手动将自动加载的文件添加到缓存中会有效地解决此问题吗?

答案 1 :(得分:0)

由于某些原因apc.cache_by_default设置为OFF,我的文件没有正确缓存,这是合乎逻辑的给定此配置,但是,我仍然不明白为什么我手动需要的实际缓存。