php - 清算资源

标签 php performance

是否可以清除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/

相关文章:

mysql - 如何提高大型 InnoDB 表的 LOAD DATA 性能?

php - Internet Explorer 文件上传未通过 MIME 类型检查

php - Mysql查询无法根据条件检索数据

php - MYSQL 返回总结果

performance - 当mongodb内存不足时会发生什么?

java - 检查所有订单的运行时间是多少?

performance - ppval的高效替代品

php - 如何将多个逗号分隔的列表分解为单个 foreach?

php - c程序shell通过php输入

performance - 如何在 ElasticSearch 中为短语查询启用模糊性