Here are some of my observations: Things that do NOT change between implementations: -------------------------------------------------------------------------------- AbstractSAXParser parsing time (45 and 50% of the total time) Writing information with ByteArrayAccessibleOutputStream (25 and 30% of the total time) Dictionary Creation (small amount of time)
Things that DO change: -------------------------------------------------------------------------------- The alternate method must traverse the nodes twice. The original did this in one pass. The alternate method makes fewer copies (30% less). The alternate stores additional structure details for later processing. The rest of the programming is basically shuffled around to make the alternate process work. On Wed, Feb 19, 2014 at 6:13 PM, Till Westmann <[email protected]> wrote: > Ok, so this is actually quite a bit slower. > Do you see an indication what is slow about it? > > Till > > > On Wed, Feb 19, 2014 at 5:54 PM, Eldon Carman <[email protected]> wrote: > > > The alternative SAX content handler does fewer copies by ~30%. Yet the > > reduce copy time does not save more than the introduced overhead to track > > nodes for the single copy. > > > > Deep XML Tree > > original 228 copies > > alternative 167 copies > > > > Micro XML Tree > > original 30 copies > > alternative 19 copies > > > > The alternate query times: > > > > Whole Execution Time (start up, compile, 10 queries executed) > > Time in minutes and seconds. > > > > Query q00 (500mb) > > --------------- > > 4m24.469s VXQuery - 1 partition > > 2m26.115s VXQuery - 2 partitions > > 1m34.063s VXQuery - 4 partitions > > > > Average Execution time (average of 4-10 queries executed) > > Time in milliseconds. > > > > Query q01 (500mb) > > --------------- > > 24,724ms VXQuery - 1 partition > > 12,727ms VXQuery - 2 partitions > > 8,364ms VXQuery - 4 partitions > > >
