2
所以,我創建了一個34MB的XML文件。DOMDocument-> saveXML()耗時太長
當我試圖從DOMDocument->saveXML()
獲得輸出時,它需要94秒才能返回。
我認爲產生這個XML這裏無關緊要的代碼,因爲問題是在saveXML()行:
$this->exportDOM = new DOMDocument('1.0');
$this->exportDOM->formatOutput = TRUE;
$this->exportDOM->preserveWhiteSpace = FALSE;
$this->exportDOM->loadXML('<export><produtos></produtos><fornecedores></fornecedores><transportadoras></transportadoras><clientes></clientes></export>');
[...]
$this->benchmark->mark('a');
$this->exportDOM->saveXML();
$this->benchmark->mark('b');
echo $this->benchmark->elapsed_time('a','b');
die;
這給了我94.4581
。
我在做什麼錯?在生成文件時,你們是否知道DOMDocument與性能相關的問題?
如果您需要更多信息,請告訴我。謝謝。
我試過刪除formatOutput
。它將性能提高了33%。
仍然需要很長時間。任何其他提示?
我希望我錯了,但處理大型XML文件(以及在XML世界中,我敢說34 MB有資格作爲大型文件)是一項非常耗費資源的任務,如果使用像DOMDocument或SimpleXML這樣的智能庫。你可以嘗試'formatOutput = FALSE',但是我不會改進響應,你可能需要切換到一個醜陋而快速的[pull parser](http://php.net/xmlwriter)。 – 2013-02-26 16:11:48
我只是用'formatOutput = FALSE;'嘗試過。它將性能提高了約33%。儘管如此,仍然需要很長時間。 – dmmd 2013-02-26 16:13:17