2013-11-26 28 views

回答

1

正如我所看到的主要區別是在與Identation的開銷。當流式寫入器產生單行輸出時,MarkupBuilder會做出很多操作來製作prettyPrinted xml字符串。

正如我所想,您可以提供您的IndentPrinter,並儘量減少開銷。

還有一個相同的問題here,但答案不太清楚。

由名稱,我應該建議,Streaming將直接在流中寫入數據,Not-Streaming版本 - 累積內存中的文檔結構。但在StreamingMBOrdinary MB的來源中,我找不到一個核心區別,也就是說MB正在存儲不必要的數據。

所以,我認爲,縮進只是瓶頸。

1

在我的理解中,streamingMarkupBuilder vs. MarkupBuilder有點像SAX vs. DOM:第二種將文檔的完整結構加載到內存中,第一個處理文檔,當它加載時需要,因爲它被加載。

其他圖像可能正在使用迭代器與使用整個列表。

希望它有幫助

相關問題