四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

phpQuery占用內(nèi)存過多的處理方法

phpQuery是一個(gè)用php實(shí)現(xiàn)的類似jQuery的開源項(xiàng)目,可以在服務(wù)器端以jQuery的語法形式解析網(wǎng)頁元素。 相對于正則或其它方式匹配網(wǎng)頁方式,phpQuery使用起來要方便的多。
在使用phpQuery采集網(wǎng)頁時(shí),遇到一個(gè)問題:在處理大量網(wǎng)頁之后,phpQuery占用的內(nèi)存數(shù)量非常驚人(很快就超過了1G),
比如這段代碼:
復(fù)制代碼 代碼如下:
while (true) {
    phpQuery::newDocumentFile($htmlFile);
    // 處理網(wǎng)頁元素...
    echo memory_get_usage() . "/n";
}

謹(jǐn)慎運(yùn)行上面這段代碼,它會很快用光你的內(nèi)存。
經(jīng)過查看phpQuery的源代碼終于發(fā)現(xiàn)了問題所在,phpQuery在每處理一個(gè)網(wǎng)頁就會產(chǎn)生一個(gè)DOMDocumentWrapper 對象,而每個(gè)DOMDocumentWrapper 對象會被保存在靜態(tài)成員$documents中(phpQuery::createDocumentWrapper中),這個(gè)變量是一個(gè)數(shù)組,每解析一個(gè)網(wǎng)頁數(shù)組元素就增加一個(gè)。
phpQuery::$documents[$wrapper->id] = $wrapper;
找到問題后,解決就很容易了,每次解析完一個(gè)網(wǎng)頁,把phpQuery::$documents置空即可。
復(fù)制代碼 代碼如下:
while (true) {
    phpQuery::newDocumentFile($htmlFile);
    // 處理網(wǎng)頁元素...
    phpQuery::$documents = array();
    echo memory_get_usage() . "/n";
}

內(nèi)存占用穩(wěn)定了。

php技術(shù)phpQuery占用內(nèi)存過多的處理方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: julia taylor| 赵冬苓代表作品有哪些| 日韩免费观看视频| reimei影虎| 胭脂似火电视剧免费观看完整版全集| 瑜伽教练韩国电影| 遥远的天熊山电影完整版在线观看| 丛林总动员| 金枝缠梦短剧全集| 黄网站免费观看| 信我者无需多言,不信我者| 三大| 杨贵妃黄色片| 中医基础理论试题题库及答案| 出轨的女人电影| 甜蜜蜜电影粤语无删减版| 唐朝诡事录最大败笔是谁| 大时代电视剧剧情介绍| 青春没有遗憾才完美辩论资料| 林熙蕾三级未删减| 小舞泳装比基尼套装图片| 夜半2点钟| 拨萝卜电视剧视频歌高清在线观看大牛 | 过客图片| 禁忌爱游戏| 打男孩光屁股| 繁城| 吻胸捏胸揉视频大全| 黑丝高跟在线| 夏娃诱惑| 电影《迷雾》完整版免费播放高清| 奔跑吧第13季| 少年智力开发报| 盛夏晚晴天演员表| 转正意见评语| 金三角电影| 吻电影| 蛇花| 除暴电影| 美女亲热视频| 荆棘花|