任何人有修复Simple_DOM内存问题的运气?我搜索了这些论坛,只发现了其他解析引擎的推荐。如何修复Simple_DOM内存限制致命错误?
我的脚本循环遍历20,000个文件并从每个文件中提取一个单词。我必须每次调用file_get_html函数。
- 将其移动到不同的服务器。同样的结果。
- 将foreach循环更改为while循环。
- 增加内存限制,无论是服务器。将无法工作。
任何人有修复Simple_DOM内存问题的运气?我搜索了这些论坛,只发现了其他解析引擎的推荐。如何修复Simple_DOM内存限制致命错误?
我的脚本循环遍历20,000个文件并从每个文件中提取一个单词。我必须每次调用file_get_html函数。
是的,你可以增加内存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);
}
当然,这只是一个例子,但可以将其与你的codeand确保每一个请求就像一个正在运行的文件的第一次。
祝你好运:)
我看来,像这种方法来处理一个单一的执行过程中的数据量是有缺陷的。根据我的经验,所处理的PHP cli并不是真的意味着长时间运行并处理大量数据。这需要非常非常小心的内存管理。扔在泄漏的第三方剧本中,你有一个让你的头撞在桌子上的秘诀。
的可能,而不是试图通过所有20K文件一次运行,你可以同时处理几百,存储结果某处中介,像一个MySQL数据库,然后一旦所有的文件都已经被处理收集结果。
是的,这是我最终做到这一点 - 另外,禁用图像似乎有助于解析网址时。 – user723220 2011-04-28 06:50:03