Php 清理资源
是否可以清除PHP中的所有资源 我知道你可以用 使用unset,您可以轻松地清除这些资源 但这对我来说还不够。我有一个脚本运行了很长时间(~1h 30m)来执行许多函数。。但是,在执行过程中,脚本收集的信息不再重要。。该脚本导出产品,每个产品的容量约为0.2MB-0.5MB(3200个产品) 这意味着超过600mb的内存使用量。我尽可能地优化了脚本,但我没有把它缩小 我可以通过或获取所有包含的文件;是否可以清除这些信息?删除类(除了一些必需的类,如autoloader类)或其他包含的文件,以便释放更多RAM 或者您知道在执行时优化服务器使用的其他方法吗 也许这是一个愚蠢的问题,但我很高兴看到每一个提示都能提高PHP脚本的性能Php 清理资源,php,performance,Php,Performance,是否可以清除PHP中的所有资源 我知道你可以用 使用unset,您可以轻松地清除这些资源 但这对我来说还不够。我有一个脚本运行了很长时间(~1h 30m)来执行许多函数。。但是,在执行过程中,脚本收集的信息不再重要。。该脚本导出产品,每个产品的容量约为0.2MB-0.5MB(3200个产品) 这意味着超过600mb的内存使用量。我尽可能地优化了脚本,但我没有把它缩小 我可以通过或获取所有包含的文件;是否可以清除这些信息?删除类(除了一些必需的类,如autoloader类)或其他包含的文件,以便释
脚本环境信息:脚本运行在旧的Magento版本1.4上,该版本在缓存和性能方面存在巨大问题;目前不可能更新到新版本。问题不在于变量,而在于算法 在我看来,脚本将所有值累积到一个大的“产品对象”数组中,该数组将在导出的文件中序列化
要了解内存,最好在构建后序列化每个产品,而不是在序列化之前累积所有产品以导出到阵列中。对于清除资源/内存,您有很多建议: 变量的
unset()
mssql\u free\u结果
for SQL
memory\u get\u usage()
获取当前分配给PHP脚本的内存量(以字节为单位)
等等
如果将所有内容混合使用,可以减少内存/ressource。我们有一个脚本,它消耗了高达2GB的内存,并且疯狂地泄漏了内存(它使用了1.1条原则) 在
unset()之后,我们尽可能多地将gc\u enable()
添加到脚本顶部,并在战略位置添加gc\u collect\u cycles()
这确实有助于回收一些已使用的内存,但确实会将脚本速度降低一小部分。垃圾收集器通常足以释放任何未使用的引用,特别是因为它可以检测PHP5.3之后的循环引用。您真的达到了600MB吗?您是否在变量中存储sql记录之类的数据?您可以尝试写入磁盘,然后取消设置。从声音中,您希望清除PHP脚本中间的所有资源。我的建议是:不要。这听起来可能会导致可怕的事情(特别是因为脚本可能仍在处理这些事情)。相反,您应该进入代码,让它关闭不再需要的每个资源。您应该如前所述,将数据导出到临时文件,并清除关于文件中内容的所有内存。最后,打开每个文件并合并它们。。。如果需要,请使用不同的脚本。我使用的是旧的magento版本,目前不可能更新该版本,并且需要花费太多的精力来更新该版本,以便所有内容都能正常工作。。我不想,我们也没有时间,改变magento的核心功能,让它更快。。所以我希望有人知道这个问题