Performance is one of the most important features of a framework, particularly one operating at a low-level on comparatively sizable data sets (like XML). This is why we have made benchmarking and rigorous performance testing an integral part of our development process. We're still adding tests and optimizing, but the results are already very promising.
One feature of Anti-XML which is important to remember is the fact that we use bloom filters to optimize selection over arbitrarily large trees. This is why both shallow and deep selection are almost unacountably fast under Anti-XML (when compared to scala.xml and even javax.xml). Unfortunately, it is also why Anti-XML trees require noticably more memory than scala.xml, and why Anti-XML parse times tend toward the long side.
All of the tests below were performed on a 2010 MacBook Pro with a Dual core, 2.66 Ghz Core i7 (Turbo up to 3 Ghz) and hyperthreading enabled, 8 GB of 1067 Mhz DDR3 RAM and a 256 GB 3 Gbps SATA2 SSD. The sources for all of the performance tests can be found in the repository.
|7.1 MB||50.39 MB||45.33 MB||37.89 MB|
|32 MB||250.9 MB||179.5 MB||168.1 MB|
|Parse||195 ms||232 ms||97 ms|
|Shallow-Select||6 ms||15 ms||-|
|Deep-Select||5 ms||265 ms||16 ms|
|Parse||1119 ms||1161 ms||692 ms|
|Shallow-Select||620 ms||84 ms||-|
|Deep-Select||342 ms||1220 ms||50 ms|