In reply to Jeffr0.

This is a ground-up rewrite. Basically, the way that the existing importer works is by reading the whole file in, turning that into a giant object of data, then importing that. (This is XML "push" parsing, because the parser pushes all the data to you at once.)

The rewrite instead works by opening (but not reading) the file, then moving through a piece at a time. (This is XML "pull" parsing, because you specifically pull pieces from the parser as you need.) This means you never actually need the file in memory, just enough to work on. This also means you can pause and resume parsing, as you just need to keep track of where you're up to.

This uses less memory, because you don't need the whole file in memory at once (and the usage is also more constant, rather than dependent on file size), as well as being slightly faster (mostly because there's less memory usage).

The GSoC project tackled this from the UI end, which takes the file and changes how the import runs, but doesn't change the internals. It's kind of similar to how splitting WXR files works (IIRC), but doesn't fix the core issues. The new importer is resumable though, so this should be a lot easier. :)