消耗。 加載文件時,它會消耗相當數量的RAM,這沒關係。我的主要問題是內存不能釋放,直到cron退出。SimpleXML的可用內存,我使用SimpleXML來解析文件(大約341 MB)從加載文件
我認爲,如果我取消設置所引用的XML對象爲在內存中的文件也將被釋放保留的內存,但這種情況並非如此。
是否可以免費爲引用的文件記憶?
示例代碼(不知道是否GC可以幫助):
gc_enable();
$this->xml = simplexml_load_file($filePath);
$val = $this->getValues('/SOME/PATH/HERE');
foreach($val as $a) {
$this->tags[] = (string) $a->$tagName;
}
$this->xml = null;
unset($this->xml);
gc_collect_cycles();
是否還有另外一個對XML文檔的某個節點的引用,您從來沒有將其解除(導致SimpleXML將整個內容留在內存中)?否則,這可能只是PHP內存管理器複雜性的一個例子。這裏有一個很好的談話:https://www.youtube.com/watch?v = sm1HUrnsxLI – IMSoP
沒有其他的參考,這是整個代碼。它是構造函數的一部分,但是XML變量只在構造函數的範圍內。 – Drakoumel