是否可以清除PHP中的所有资源?
我知道您可以使用 get_defined_vars 获取所有已定义的函数 使用 unset,您可以轻松清除这些资源。
但这对我来说还不够。我有一个运行很长时间(~1h 30m)来执行许多功能的脚本..但是在执行过程中脚本收集的信息不再重要..脚本导出产品并且每个产品大约 0.2MB - 0.5MB产品(3200 个产品)
那是超过 600mb 的内存使用量。我尽可能地优化了脚本,但我并没有把它变小。
我可以使用 get_included_files 获取所有包含的文件或 get_declared_classes ;是否可以清除这些信息?删除类(除了一些必需的类,例如自动加载器类)或其他包含的文件,以便我可以释放更多 RAM?
或者您知道在执行时优化服务器使用的其他方法吗?
也许这是一个愚蠢的问题,但我很高兴每一个提示都可以提高 PHP 脚本的性能。
脚本环境信息:脚本运行在旧的Magento 1.4版本上,缓存和性能存在巨大问题;目前无法更新到较新版本。
最佳答案
我们有一个脚本消耗了高达 2GB 的内存,并且疯狂地泄漏内存(它使用 Doctrine 1.1)。
在尽可能多地unset()ing
之后,我们将gc_enable()
添加到脚本的顶部,并且gc_collect_cycles()
在战略位置。
这确实有助于回收一些已用内存,但确实会稍微降低脚本速度。
关于php - 清算资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761779/