我试图找到一个明确的答案,自动加载在使用APC时杀死性能的问题及其原因(基准测试?)
PS 使用谷歌/ stackoverflow 发现此链接,但我想知道这是否仍然存在?必须改进PHP来处理这个问题?因为自动加载很酷!
许多框架spl_autoload_register()用于动态加载类(即控制器和模型).关于自动加载和操作码缓存的问题有几篇文章.特别是一个帖子有@cletus的响应,它引用了@Rasmus做了一些声明,这些声明对于那些利用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
Run Code Online (Sandbox Code Playgroud)
这是apc.php的截图

获得opcached的文件

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