On Thu, 08 Sep 2011 15:38:43 -0400, Jacob Carlborg <d...@me.com> wrote:

On 2011-09-08 15:22, Steven Schveighoffer wrote:
On Thu, 08 Sep 2011 09:16:40 -0400, Jacob Carlborg <d...@me.com> wrote:
The Tango XML parser doesn't read from a file, it takes the input as a
string. The parser isn't affected by I/O at all.

So you have to read the entire file before sending it to the parser?

Isn't that a bit limited? What if I have a 50MB file, I have to read it
into a continuous memory block first?

-Steve

I'm just telling how Tango currently works, not how the XML module in Phobos should work. But I guess it might be somewhat limited. 50MB isn't that big to read into memory?

Um... yeah, it is :) I have 1 GB of memory, my system starts thrashing with an app that consumes 750MB. So that's like 13 xml files read? Especially if I want to use DOM, I have to keep them around...

Not to mention that the GC has to allocate a contiguous space for it. So even if I have 100MB of garbage space, maybe none of it is usable, I still have to allocate a new block. I'm just surprised there isn't at least an option for a stream-based xml parser in Tango.

One thing this does though, I always assumed it was Tango's I/O that accounts for its xml superiority. I wonder, does anyone count reading the file in any of the benchmarks?

I still think we can come close without having to pre-read an entire file.

I think it would be nice to be able to do both. If you read the whole file before sending it to the parser you would know it doesn't perform any I/O operations.

I totally agree. I think there's ways to abstract the functionality for both memory-based and device-based i/o into one interface (part of the reason for the revamp).

-Steve

Reply via email to