Php Include语句占用1.5MB内存?

Php Include语句占用1.5MB内存?,php,memory-management,memory-leaks,include,Php,Memory Management,Memory Leaks,Include,大家好,我正在尝试优化我的应用程序,并且已经开始测试代码片段占用的内存量。我刚刚发现单个include语句占用了1.5MB的内存。我使用memory\u get\u usage()检查代码片段之前和之后使用的内存 包含的文件仅包含一个文件,但如果我尝试单独包含该嵌套包含文件,则一个包含的最大减少量仅为768KB。这里的文件非常小,文件中唯一的代码是类定义 这里发生的一切是正常的吗?我怎样才能解决这个问题。我的应用程序托管在共享主机上,我想知道这是否是导致我的应用程序大量消亡的原因 编辑: 这就是

大家好,我正在尝试优化我的应用程序,并且已经开始测试代码片段占用的内存量。我刚刚发现单个include语句占用了1.5MB的内存。我使用memory\u get\u usage()检查代码片段之前和之后使用的内存

包含的文件仅包含一个文件,但如果我尝试单独包含该嵌套包含文件,则一个包含的最大减少量仅为768KB。这里的文件非常小,文件中唯一的代码是类定义

这里发生的一切是正常的吗?我怎样才能解决这个问题。我的应用程序托管在共享主机上,我想知道这是否是导致我的应用程序大量消亡的原因

编辑:

这就是我如何进行基准测试:

$m = memory_get_usage(true);
include('/...');
$m = memory_get_usage(true)-$m;
echo $m;//over 1.5 MB ?

这对我来说并不奇怪,特别是如果include文件正在做任何事情的话。PHP代码正在进行动态解释,因此PHP解释器需要分配大量资源来解析和运行该文件中的代码。1.5MB看起来可能很多,但PHP解释器的内存消耗往往是合理的。出于验证目的,您可以尝试包含另一个空文件,看看这是否会触发内存增加。您将测试同一include文件的其他版本,并将各种内容取出,以查看这是否是某种持续的内存增加,或者它是否依赖于现有的功能。在任何情况下,这对我来说都不是不合适或不寻常的。这很可能是解释器分配内存读取包含的文件、为其构建某种AST并为其中的所有对象、值和变量预先分配内存的结果。

您在本地主机上检查过脚本吗?另外,使用像xdebug这样的探查器,可以获得更多关于导致内存增加的原因的详细信息。()在我的本地主机上,脚本运行良好。事实上,我已经尝试过真正提高本地主机的极限,但到目前为止,它在本地系统上还没有消失过一次。虽然在我的本地主机上有点慢。然而,我的应用程序在网上消失了,我怀疑所用的内存是否与此有关。问题是,我测试的代码片段被定期调用,是否有可能像这样维护一个包含文件的cahce?包含的文件只是一个类定义。实际上,我的问题是,我的应用程序托管在一个在线服务器上,随着请求的增多,它似乎消失了,我遇到了一个网络错误,所以我想知道我的系统是不是内存太多了?它很好用。尽管在我的本地主机上速度很慢…我不知道-它是否访问数据库或文件,或发出网络请求或其他什么?这实际上取决于代码在做什么,但是如果它没有做任何这些事情,那么它的速度很慢或者内存不足似乎很奇怪。也许你可以再描述一下它在做什么?@Ali:“问题是,我基准测试的代码片段被定期调用,是否可以像这样维护一个包含文件的cahce?”安装一个PHP操作码缓存,例如APC:3.0.19是最新的稳定版本。