繁体   English   中英

APC降低php性能??? (PHP 5.3,Apache 2.2,Windows Vista 64位)

[英]APC decreasing php performance??? (php 5.3, apache 2.2, windows vista 64bit)

我有一个Apache / 2.2.15(VC9)和PHP / 5.3.2(VC9线程安全)作为Vista 64位计算机上的apache模块运行。 一切正常。

我正在基准测试的项目(使用apache的ab实用程序)基本上是标准的Zend Framework项目,不涉及数据库连接。 平均(中位数)apache响应约为0.15秒

在我使用标准设置安装APC(3.1.4-dev VC9线程安全)后,请求响应时间突然提高到1.3秒(!) ,这是不可接受的...所有apc设置看起来总是很好(通过apc.php脚本:足够的shm内存,没有高速缓存已满,碎片0%)。

唯一的区别是禁用统计信息查找(apc.stat = 0)。 然后,响应下降到0.09秒 ,这最终比没有apc时更好。 IIRC,可以预期并且很显然,统计信息查找会产生一些开销,但是,与不使用apc扩展进行运行相比,它是否应该具有更高的性能?

或换句话说,为什么apc.stat会产生如此大的开销?

听起来好像统计检查绕过了文件缓存-但是我想甚至Microsoft NT也可以确保文件缓存是一致的。

(FWIW:我在apc上的经验是它在Linux上带来了很大的改进)

我建议尝试使用其他文件系统-但是使用NT时,没有太多选择。

如果您对结果有信心(是在测试之间重新启动还是只是重新启动Apache?),然后在http://bugs.php.net/上发布错误(似乎那里似乎没有任何相关的内容)

C。

编辑

..尽管这只是我想到的-运行测试时,系统内存发生了什么? 如果用ab实例用完了所有物理内存,则将没有文件缓存。

更新 :我发现主要的恶意软件是由防病毒软件引起的...我不明白为什么会发生这种情况(为什么仅使用apc),但是这不再是问题了(注意:这是一台开发机)

现在,如果使用apc(apc.stat = 1)运行,则响应时间约为0.13秒 ,这比不使用apc时( 0.15秒 )要好一点。 它比预期的要好得多,但我现在将其保留...

感谢symcbean的回答。

防病毒软件很愚蠢,它会认为每次APC运行并生成输出时,都会有一个新应用程序并要对其进行重新扫描。 如果禁用缓存“ apc.cache_by_default = Off”,应该会看到一个改进,尽管最好只是禁用AV扫描已编译的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM