haskell xml parsing for larger files?

malcolm.wallace malcolm.wallace at me.com
Thu Feb 20 15:49:21 UTC 2014

Is your usage pattern over the constructed tree likely to be a lazy prefix traversal?  If so, then HaXml supports lazy construction of the parse tree.  Some plots appear at the end of this paper, showing how memory usage can be reduced to a constant, even for very large inputs (1 million tree nodes):


On 20 Feb, 2014,at 11:30 AM, Christian Maeder <Christian.Maeder at dfki.de> wrote:


I've got some difficulties parsing "large" xml files (> 100MB).
A plain SAX parser, as provided by hexpat, is fine. However, 
constructing a tree consumes too much memory on a 32bit machine.

see http://trac.informatik.uni-bremen.de:8080/hets/ticket/1248

I suspect that sharing strings when constructing trees might greatly 
reduce memory requirements. What are suitable libraries for string pools?

Before trying to implement something myself, I'ld like to ask who else 
has tried to process large xml files (and met similar memory problems)?

I have not yet investigated xml-conduit and hxt for our purpose. (These 
look scary.)

In fact, I've basically used the content trees from "The (simple) xml 
package" and switching to another tree type is no fun, in particular if 
this gains not much.

Thanks Christian
Glasgow-haskell-users mailing list
Glasgow-haskell-users at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20140220/afde4e92/attachment.html>

More information about the Glasgow-haskell-users mailing list