The SAX content handler takes the parser output to build an XML document for VXQuery to process. The current implementation creates each node as it traverses the tree. When a node is created that has children. The child nodes are copied into the new node. An alternative would be to delay all these copies until the whole document node is known and then write out the information all at once. Below are some stats about the time spent in the parser. The percentages are based on a query time of 140s.
How important is rewriting the parser to create a single copy of the final document node? Should I get numbers on how many times we actually make a copy? What is the priority on this work? Overview of Time (q00 and q01) 73 to 78% parsing input 11% select expression 3 to 4% child expressions in for loop Hot spots in parsing input (percentages of parsing time.) --- q00 --- 27% write int 13% write bytes 8% BinarySearchAlgorithm (excluding compare the compare below) 6% compare (used by binary search) --- q01 --- 26% write int 14% write bytes 10% BinarySearchAlgorithm (excluding compare the compare below) 8% compare (used by binary search)
