我的网络应用程序通过AJAX对我的PHP脚本进行了大量的POST和GET调用。我注意到在导出到PDF / excel,搜索,插入/更新/删除等时调用我的脚本后,我的服务器内存使用量达到了相当低的水平。
我的PHP脚本都不以exit()
或die()
结尾。这会导致我的记忆问题吗?如果我要在每个脚本的末尾添加exit()
或die()
,是否会清除该给定脚本刚刚使用的内存?
答案 0 :(得分:3)
exit
和die
与到达文件末尾基本相同。运行析构函数,刷新并结束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 顺便说一句,你在哪里获得有关免费记忆的信息?