PHP APC使用2.7MB RAM,通常使用16K的文件

我有一个performance不佳的PHP应用程序。 我调查了这个情况,并确定APCcaching将不断填满。 我增加了apccaching的大小,所以我没有得到任何完整的caching事件,并且应用程序运行良好。

然而…

我感到困扰的是,这个应用程序需要为apc留出太多的内存空间。 我有其他非常相似的应用程序,它们运行得很好,默认设置为64M。 (我不得不上升到400M才能使这个应用程序正常工作)

所以,我使用apc.php深入挖掘,发现了一些非常奇怪的东西。 两个不同的应用程序,都使用相同的共享库报告apccaching大大不同的内存使用数量…

从一个没有问题的应用程序

文件名:tessituraLoginEx2.php大小:16592

而使用所有额外的RAM的应用程序

文件名:tessituraLoginEx2.php大小:2717488

两个不同的应用程序,都使用相同的共享库,应用程序A使用16k的RAM作为文件,而应用程序B使用2.7MB作为完全相同的文件。

任何人都知道为什么应用程序A和B会为完全相同的文件消耗这么大的不同大小?

附加信息

我能够通过改变项目中有问题的文件的需求来解决这个问题。 这两个项目都使用一个框架,调用一个辅助方法,最终从正确的目录执行正确文件的require_once。

我改变了应用程序,明确做一个require_once,而不使用框架和臃肿的apc ram用法消失。 仍然不知道为什么APC有这个问题时,需求发生在一个更强大的/dynamic的方式。 幸运的是,我们不再需要围绕在require_once上的复杂逻辑,所以这个解决方法将允许我回到合理的内存分配apc。

澄清…两个应用程序使用相同的复杂逻辑来执行require_once,但只有一个有膨胀问题。