任何人有修復Simple_DOM內存問題的運氣?我搜索了這些論壇,只發現了其他解析引擎的推薦。如何修復Simple_DOM內存限制致命錯誤?
我的腳本循環遍歷20,000個文件並從每個文件中提取一個單詞。我必須每次調用file_get_html函數。
- 將其移動到不同的服務器。同樣的結果。
- 將foreach循環更改爲while循環。
- 增加內存限制,無論是服務器。將無法工作。
任何人有修復Simple_DOM內存問題的運氣?我搜索了這些論壇,只發現了其他解析引擎的推薦。如何修復Simple_DOM內存限制致命錯誤?
我的腳本循環遍歷20,000個文件並從每個文件中提取一個單詞。我必須每次調用file_get_html函數。
是的,你可以增加內存ini_set()
但這只是你有權這樣做。 我推薦當你完成任務時,你正在經歷你的循環,取消包含大量數據集的變量。
for($i=0;$i < 30000;$i++){
$file = file_get_contents($some_path.$i);
// do something, like write to file
// unset the variables
unset($file);
}
當然,這只是一個例子,但可以將其與你的codeand確保每一個請求就像一個正在運行的文件的第一次。
祝你好運:)
我看來,像這種方法來處理一個單一的執行過程中的數據量是有缺陷的。根據我的經驗,所處理的PHP cli並不是真的意味着長時間運行並處理大量數據。這需要非常非常小心的內存管理。扔在泄漏的第三方劇本中,你有一個讓你的頭撞在桌子上的祕訣。
的可能,而不是試圖通過所有20K文件一次運行,你可以同時處理幾百,存儲結果某處中介,像一個MySQL數據庫,然後一旦所有的文件都已經被處理收集結果。
是的,這是我最終做到這一點 - 另外,禁用圖像似乎有助於解析網址時。 – user723220 2011-04-28 06:50:03