我有一个PHP脚本,有时会耗尽内存(进程耗尽它)并异常终止。我想知道PHP中是否有任何功能允许我在脚本终止时运行“清理”操作。我试过“关机处理程序”,但它们似乎没有被调用。
我可以使用“信号处理程序”或“关闭回调”吗?我想调用一个函数,当脚本退出时(通常或异常)执行某些操作。
答案 0 :(得分:0)
PHP中没有像你希望的那样工作的清理功能。您可以/应该做的是查看您的代码,看看如何最好地进行优化,以便在不耗尽内存的情况下完成所需的操作。
PHP内置了一个函数,可以让您获得分配给PHP的当前内存量memory_get_usage。通过这个,您可以检查PHP当前使用的内存量,并将其与php.ini
文件中分配的内存量进行比较。当你接近这个时,你可以退回或拿起另一个线程,而这个线程就离开了。
以下是一些你可以做的事情来调整PHP,也可能会节省一些内存,其中一些你可能已经知道,但如果我遇到同样的问题,那就是我的看法:
php.ini
文件中的内存量,或者尝试使用ini_set来增加PHP的内存大小。如果你提高了内存量,这可能是问题的暂时解决方法PHP应该能够处理大量数据和大量转换,但是为了提高效率而做的任何事情都可以帮助它。
希望这有帮助, 利安 -