php phpqueey内存泄露,phpQuery 占用内存过多的处理方法

phpQuery 占用内存过多的处理方法

phpQuery 是一个用 php 实现的类似 jQuery 的开源项目, 可以在服务器端以 jQuery 的语法形式解析网页元素 相对于正则或其它方式匹配网页方式, phpQuery 使用起来要方便的多

在使用 phpQuery 采集网页时, 遇到一个问题: 在处理大量网页之后, phpQuery 占用的内存数量非常惊人 (很快就超过了 1G),

比如这段代码:

代码如下:while(true){

phpQuery::newDocumentFile($htmlFile);

// 处理网页元素...

echo memory_get_usage()."\n";

}

谨慎运行上面这段代码, 它会很快用光你的内存

经过查看 phpQuery 的源代码终于发现了问题所在, phpQuery 在每处理一个网页就会产生一个 DOMDocumentWrapper 对象, 而每个 DOMDocumentWrapper 对象会被保存在静态成员 $documents 中 (phpQuery::createDocumentWrapper 中), 这个变量是一个数组, 每解析一个网页数组元素就增加一个

phpQuery::$documents[$wrapper->id] = $wrapper;

找到问题后, 解决就很容易了, 每次解析完一个网页, 把 phpQuery::$documents 置空即可

代码如下:while(true){

phpQuery::newDocumentFile($htmlFile);

// 处理网页元素...

phpQuery::$documents=array();

echo memory_get_usage()."\n";

}

内存占用稳定了

来源: https://www.php1.cn/detail/php-45d0b173fb.html

微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值