Hi: I have a number of SVG files produced by Visio that take a long time (> 20 minutes) to load. I used Jprobe and found that the biggest time sink was in Batik.dom.svg.SVGOMDocument.getById(). As an experiment, I replaced the scan of "protected static Element getById(String id, Node node)" by a hash table.
Specifically, I added the following in SVGOMDocument.java private HashMap elementsWithIDs = new HashMap(); public void registerElement (String id, Element ele) { elementsWithIDs.put(id, ele); } And modified the getElementById() call to: public Element getElementById(String elementId) { return (Element) elementsWithIDs.get(elementId); } Then to actually, load the hash table, I modified org.apache.batik.dom.AbstractElement.java to register elements when the "id" was set. For example, in "public void setAttributeNS()", at the end I added code if (qualifiedName.equals("id")) { ((org.apache.batik.dom.svg.SVGOMDocument)getOwnerDocument()) .registerElement(value, this); } I similarly modified "public void setAttribute()" The results were dramatic, with the > 20 minute load dropping to just a few seconds. What other changes would be necessary to make this change "correct"? Thanks Fritz Sieker [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]