当PHP脚本占用大量内存时,如何使其卸载速度更快?
我有一个PHP脚本,它从一个SQL调用中加载超过6000万个字符串,对它们进行一些处理,然后将它们写入一个文件。是的,听起来很可怕,但它完成了它需要做的工作 脚本运行大约需要一个小时,主要是从SQL调用加载,这很好 但当它完成后,需要一个多小时才能退出。我只能假设它正在释放所有消耗的内存 我尝试从SQL调用中释放资源,看看是否可以让脚本结束和进程结束,这没有什么区别当PHP脚本占用大量内存时,如何使其卸载速度更快?,php,sql,performance,memory,Php,Sql,Performance,Memory,我有一个PHP脚本,它从一个SQL调用中加载超过6000万个字符串,对它们进行一些处理,然后将它们写入一个文件。是的,听起来很可怕,但它完成了它需要做的工作 脚本运行大约需要一个小时,主要是从SQL调用加载,这很好 但当它完成后,需要一个多小时才能退出。我只能假设它正在释放所有消耗的内存 我尝试从SQL调用中释放资源,看看是否可以让脚本结束和进程结束,这没有什么区别 我错过了什么明显的东西吗?难道脚本不能退出并让操作系统终止进程吗?如果我在知道脚本完成后手动终止进程,那么内存就会返回。有没有办法
我错过了什么明显的东西吗?难道脚本不能退出并让操作系统终止进程吗?如果我在知道脚本完成后手动终止进程,那么内存就会返回。有没有办法做到这一点,然后说,看,我已经做完了,你自己去核吧?你必须同时在内存中存储所有6000万个字符串才能对它们进行正确的处理?这项工作可以通过Map Reduce过程或类似的方法进行并行化吗?我称之为SP的SP将返回一个巨大的结果集。既然我有记忆来处理它,我就这么做。也就是说,我可以很容易地要求对SP进行修改,以对结果进行分块,但PHP并不是作为一个特别的并行平台精心设计的。我想我可以让一个控制器启动26个作业,每个结果行一个作业,每个作业都以一个特定的字母开头,因为没有更好的方法将它们分块,但这是一些额外的编码。我希望有一个超级秘密的方法让PHP进程立即终止,让操作系统恢复内存。