Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当PHP脚本占用大量内存时,如何使其卸载速度更快?_Php_Sql_Performance_Memory - Fatal编程技术网

当PHP脚本占用大量内存时,如何使其卸载速度更快?

当PHP脚本占用大量内存时,如何使其卸载速度更快?,php,sql,performance,memory,Php,Sql,Performance,Memory,我有一个PHP脚本,它从一个SQL调用中加载超过6000万个字符串,对它们进行一些处理,然后将它们写入一个文件。是的,听起来很可怕,但它完成了它需要做的工作 脚本运行大约需要一个小时,主要是从SQL调用加载,这很好 但当它完成后,需要一个多小时才能退出。我只能假设它正在释放所有消耗的内存 我尝试从SQL调用中释放资源,看看是否可以让脚本结束和进程结束,这没有什么区别 我错过了什么明显的东西吗?难道脚本不能退出并让操作系统终止进程吗?如果我在知道脚本完成后手动终止进程,那么内存就会返回。有没有办法

我有一个PHP脚本,它从一个SQL调用中加载超过6000万个字符串,对它们进行一些处理,然后将它们写入一个文件。是的,听起来很可怕,但它完成了它需要做的工作

脚本运行大约需要一个小时,主要是从SQL调用加载,这很好

但当它完成后,需要一个多小时才能退出。我只能假设它正在释放所有消耗的内存

我尝试从SQL调用中释放资源,看看是否可以让脚本结束和进程结束,这没有什么区别


我错过了什么明显的东西吗?难道脚本不能退出并让操作系统终止进程吗?如果我在知道脚本完成后手动终止进程,那么内存就会返回。有没有办法做到这一点,然后说,看,我已经做完了,你自己去核吧?

你必须同时在内存中存储所有6000万个字符串才能对它们进行正确的处理?这项工作可以通过Map Reduce过程或类似的方法进行并行化吗?我称之为SP的SP将返回一个巨大的结果集。既然我有记忆来处理它,我就这么做。也就是说,我可以很容易地要求对SP进行修改,以对结果进行分块,但PHP并不是作为一个特别的并行平台精心设计的。我想我可以让一个控制器启动26个作业,每个结果行一个作业,每个作业都以一个特定的字母开头,因为没有更好的方法将它们分块,但这是一些额外的编码。我希望有一个超级秘密的方法让PHP进程立即终止,让操作系统恢复内存。