[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: SAX conferment parser

  • From: Tyler Baker <tyler@i...>
  • To: Usha_R2@v...
  • Date: Wed, 16 Sep 1998 12:51:51 -0400

smallest sax xml
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!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.