一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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

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

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

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

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

主站蜘蛛池模板: 婷婷玖玖 | 国产成人精视频在线观看免费 | 天天干b| 香蕉久久精品 | 欧洲成人r片在线观看 | 久久婷婷色一区二区三区 | 美女视频国产 | 色黄视频 | 一起射福利 | 在线免费观看一区二区三区 | 97香蕉超级碰碰碰久久兔费 | 日本成人一区二区三区 | 玖玖国产| 成人免费观看黄a大片夜月 成人免费观看视频 | 亚洲欧美成人网 | 久久97久久97精品免视看清纯 | 激情五月婷婷综合网 | 亚洲一区二区三区高清网 | 婷婷激情综合五月天 | 久久不卡日韩美女 | 91麻豆精品福利在线观看 | 99视频有精品视频免费观看 | 亚洲欧美成人永久第一网站 | 97天天干| 天天舔天天操 | 精品无人区一区二区三区 | 91久久夜色精品国产网站 | 国产精品久久久久久久成人午夜 | 激情综合网站 | 亚洲专区一路线二 | 国产美女精品视频 | www.日本在线观看 | 亚洲国产精品日韩高清秒播 | 国产精品视频一 | 久久伊人五月天 | 伊人亚洲综合 | 国语自产免费精品视频一区二区 | 一级做a爰片性色毛片视频图片 | 国产91丝袜香蕉在线播放 | 中文免费观看视频网站 | 久久久久avav久久久 |