一区二区久久-一区二区三区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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 天天更新天天久久久更新影院 | 国产精品久久久亚洲第一牛牛 | 久久综合综合久久 | 国产一区二区精品在线观看 | 中文字幕久久网 | 中文字幕三级 | 福利在线观看视频 | 国产精品手机在线亚洲 | 成人福利免费观看体验区 | 激情视频激情图片激情小说 | 露脸一二三区国语对白 | 国产精品视频第一区二区三区 | 精品久久久中文字幕一区 | 哟哟色 | 亚洲福利视频网址 | 91po国产在线高清福利 | 污黄视频在线 | 夜夜操伊人 | 一级做a| 久久男女 | 99久久国产综合精品网成人影院 | avtt加勒比| 婷婷成人丁香五月综合激情 | 在线视频第一页 | 美女被男人狂躁免费视频 | 一级做a爱片性色毛片武则天五则 | 国产成人精品视频播放 | 欧美日韩视频在线第一区二区三区 | 日本伊人精品一区二区三区 | 日韩午夜免费 | a一区二区三区视频 | 污片在线免费观看 | 图片区另类小说 | 91久久精品视频 | 五月婷婷婷婷婷 | 亚洲国产精品久久 | www.色.con| 手机在线看片不卡中文字幕 | 一二三区 | 九九手机视频 | 操一炮在线 |