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