PHP内存使用exit()时清除?

时间:2013-02-17 21:42:39

标签: php ajax apache memory-leaks exit

我的网络应用程序通过AJAX对我的PHP脚本进行了大量的POST和GET调用。我注意到在导出到PDF / excel,搜索,插入/更新/删除等时调用我的脚本后,我的服务器内存使用量达到了相当低的水平。

我的PHP脚本都不以exit()die()结尾。这会导致我的记忆问题吗?如果我要在每个脚本的末尾添加exit()die(),是否会清除该给定脚本刚刚使用的内存?

3 个答案:

答案 0 :(得分:3)

exitdie与到达文件末尾基本相同。运行析构函数,刷新并结束ob_start级别,并运行任何关闭函数。

然而,在任何PHP过程结束时,该过程就像任何其他程序一样结束。没有留下任何记忆。

答案 1 :(得分:2)

这不是PHP问题,而是Apache功能。

当apache启动一个新进程来处理您的请求时,它不会在您的请求被处理后立即处置它的资源,相反,它可用于任何可能的未来请求。

如果使用'top'命令,您将看到多个apache进程正在运行。

在此处阅读:http://abdussamad.com/archives/169-Apache-optimization:-KeepAlive-On-or-Off.html

答案 2 :(得分:1)

我认为exit()die()不会产生任何影响。

请确保您免费获得数据库资源(结果集,连接等)。此外,请考虑您使用的所有扩展,并确保它们都没有已知的内存泄漏错误,特别是如果您使用外来扩展。

如果你在Linux上,即使“空闲内存”为“低”,你的服务器也没有交换磁盘,这可能是由于磁盘缓存。在那种情况下,一切都很好。见:linuxatemyram.com 顺便说一句,你在哪里获得有关免费记忆的信息?