[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: SAX conferment parser
Usha_R2@v... wrote: > Hi! All, > I want to use the SAX method for parsing my XML files. Can anybody > please tell me which is the best SAX conferment parser written in Java. > I want the parser to be ONLY a SAX conferment parser i.e. it should not > be both DOM & SAX conferment. I need this since for my application size > is very important issue. > > Thanks in advance. > Usha, > K. Usha Rani Your best bet would be to download several parsers and test them out. Here is the source to a SAX Timer Test I have made up for my parser (not yet released for various non-technical reasons). From what I have seen, Aelfred is the smallest of the fully conformant SAX related parsers in terms of bytecodes, but XP is the fastest in terms of speed. In terms of memory usage, you will be much better off with any streaming based-parser like Aelfred or XP than a tree-based parser like IBM's XML for Java (another SAX compliant parser). BTW, the following code takes one or two arguments. The first argument is a URL to the XML file you want to parse. The second argument is the number of times you want to parse the file. I recommend parsing a file at least 4 times when using a JIT because the first pass of each method is not compiled to native form (it is interpreted) and significant time is spent in the JIT compiling the bytecodes to native form. Once this happens at least once, the real speed of the parser can be assessed. Usage would be something like: java -Dorg.xml.sax.parser=SAX_DRIVER_CLASS_NAME Benchmark file:/foo/bar.xml 5 // Begin import java.io.*; import org.xml.sax.*; import org.xml.sax.helpers.*; public class Benchmark { public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime(); int length = (args.length >= 2) ? Integer.parseInt(args[1]) : 1; long begin, end; long free; String input = args[0]; HandlerBase handler = new HandlerBase(); Parser parser; for (int i = 0; i < length; i++) { parser = ParserFactory.makeParser(); parser.setEntityResolver(handler); parser.setDTDHandler(handler); parser.setDocumentHandler(handler); parser.setErrorHandler(handler); System.gc(); System.gc(); System.gc(); free = rt.freeMemory(); begin = System.currentTimeMillis(); parser.parse(input); end = System.currentTimeMillis(); System.out.println("Parsing Time: " + (end - begin)); System.out.println("Memory Used: " + (free - rt.freeMemory())); System.out.println(); } } catch (Exception e) { e.printStackTrace(System.out); } } } // End Tyler xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|