[jdom-interest] Possible optimization with ancestry testing?
Steven D. Keens
skeens at planetfred.com
Wed Apr 18 13:36:21 PDT 2001
I was thinking that if I could turn off ancestry testing
in Element's addContent( Element ) method I could get a
nice speed optimization when creating a Document from a
large file.
To test my theory I modified Element.java a little to
be able to turn off ancestry testing and created a test
program that uses SAXBuilder to read an XML file.
I have attached the two files Element.java and test.java.
I was surprised to find that there wasn't a significant
speed increase. Here's the results printed out from one
run of the test program:
Reading file = test2.xml
size = 2595644
Performing ancestry testing: ON
Iteration[0] time: 7801 milliseconds
Iteration[1] time: 7702 milliseconds
Iteration[2] time: 7721 milliseconds
Iteration[3] time: 7732 milliseconds
Iteration[4] time: 7742 milliseconds
Iteration[5] time: 7741 milliseconds
Iteration[6] time: 7712 milliseconds
Iteration[7] time: 7761 milliseconds
Iteration[8] time: 7772 milliseconds
Iteration[9] time: 7752 milliseconds
Time: 77446 milliseconds
Performing ancestry testing: OFF
Iteration[0] time: 7571 milliseconds
Iteration[1] time: 7601 milliseconds
Iteration[2] time: 7502 milliseconds
Iteration[3] time: 7511 milliseconds
Iteration[4] time: 7551 milliseconds
Iteration[5] time: 7491 milliseconds
Iteration[6] time: 7582 milliseconds
Iteration[7] time: 7561 milliseconds
Iteration[8] time: 7571 milliseconds
Iteration[9] time: 7562 milliseconds
Time: 75523 milliseconds
Trying to track down why I realized that the
element being added does not have a parent
because it is a "new Element()" - its parent
is null. So isAncestor() doesn't crawl back up
the tree testing if it is a child of itself.
So it looks like my optimization is not very
important. But it got me thinking, how useful
is it to test ancestry? How often is someone
hit with this kind of error and can this test
be moved outside of Element? Just some thoughts...
--
Steven Keens mailto:skeens at planetfred.com
PlanetFred Inc. http://www.planetfred.com
44 Byward Market, Suite 240, Ottawa, ON, K1N 7A2, Canada
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Element.java
Type: application/octet-stream
Size: 64341 bytes
Desc: not available
Url : http://jdom.org/pipermail/jdom-interest/attachments/20010418/3945a71d/Element.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.java
Type: application/octet-stream
Size: 2309 bytes
Desc: not available
Url : http://jdom.org/pipermail/jdom-interest/attachments/20010418/3945a71d/test.obj
More information about the jdom-interest
mailing list