phpquery是一个用php实现的类似jquery的开源项目,可以在服务器端以jquery的语法形式解析网页元素。 相对于正则或其它方式匹配网页方式,phpquery使用起来要方便的多。
在使用phpquery采集网页时,遇到一个问题:在处理大量网页之后,phpquery占用的内存数反三角函数与三角函数的关系量非常惊人(很快就超过了1g),
比如这段代码:
复制代码 代码如下:
while (tru名人故事200字e) {
phpquery::newdocumentfile($htmlfile);
// 处理网页元素…
echo memory_get_usage() . “\n”;
}
谨慎运行上面这段代码,它会很快用光你的内存。
经过查看phpquery的源代码终于发现了问题所在,phpquery三级贫困证明在每处理一个网页就会产生一个domdocumentwrapper 对象,而每个d关于环保的资料omdocumentwrapper 对象会被保存在静态成员$documents中(phpque谜语及答案ry::createdocumentwrapper中),这个变量是一个数组,每解析一个网页数组元素就增加一个。
phpquery::$documents[$wrapper->id] = $wrapper;
找到问题后,解决就很容易了,每次解析完一个网页,把phpquery::$documents置空即可。
复制代码 代码如下:
while (true) {
phpquery::newdocumentfile($htmlfile);
// 处理网页元素…
phpquery::$documents = array();
echo memory_get_usage() . “\n”;
}
内存占用稳定了。
本文发布于:2023-04-06 09:35:26,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/f3672c40f978cb4fd05d3375a44f2e90.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:phpQuery占用内存过多的处理方法.doc
本文 PDF 下载地址:phpQuery占用内存过多的处理方法.pdf
留言与评论(共有 0 条评论) |