任何人都有修复Simple_DOM内存问题的运气吗?我搜索了这些论坛,发现只有其他解析引擎的推荐。
我的脚本循环遍历20,000个文件,并从每个文件中提取一个单词。我每次都要调用file_get_html函数。
答案 0 :(得分:0)
是的,您可以使用ini_set()
增加内存,但只有您有权这样做。
我建议你在循环中完成任务时,取消设置包含大量数据的变量。
for($i=0;$i < 30000;$i++){
$file = file_get_contents($some_path.$i);
// do something, like write to file
// unset the variables
unset($file);
}
当然这只是一个示例,但您可以将其与您的代码相关联,并确保每个请求都像第一次运行您的文件一样。
祝你好运:)答案 1 :(得分:0)
在我看来,在单次执行过程中处理大量数据的方法存在缺陷。根据我的经验,PHP cli处理并不是真正意味着长时间运行并处理大量数据。这样做需要非常非常仔细的内存管理。扔进一个漏洞的第三方剧本,你就有一个把头撞在桌子上的秘方。
也许不是一次尝试运行所有20k文件,而是一次处理几百个文件,将结果存储在某个中间位置,如MySQL数据库,然后在处理完所有文件后收集结果。