Ricebridge
Search This Site
Jul 29 2010 16:55 UTC

Got a question for us?
Just Ask!


$15 Gift Certificate for every bug you find.

Bookmark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at del.icio.us Digg Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at Digg.com Bookmark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at reddit.com Bookmark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at YahooMyWeb Bookmark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at Spurl.net Bookmark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at Simpy.com Bookmark Polyphasic Mutants at NewsVine Blink this Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at blinklist.com Bookmark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at Furl.net Fark Performance of Ricebridge Java XML Manager Component - user-friendly and well documented for software developers at Fark.com

Performance

XML Manager is a data processing component so good scalable performance is an important design requirement. We use a randomised set of XML files, each 10 times larger than the first, to test the performance of the component.

The performance test is run on a AMD Athlon 2800 CPU, with the Java 1.4.2 runtime from Sun Microsystems. We obtained an average of over 5000 data records per second. Additional operations such as performing database INSERTS will of course reduce this figure.

Test Files

A typical row in each test XML file looks like this:

<row char="[">n^T4pmr2sbMn2Ew`@LA,br\Yz{U]<int>1384182710</int>
  <val long="-3591565520858899572">
    <double>0.34552274705395747</double>
    <date>1/31/11 2:27 AM</date>
  </val>
</row>

The following RecordSpec is used:

RecordSpec rs = new RecordSpec("/data/row", 
  new String[] { "@char", "int", "val/@long", 
                 "val/double", "val/date", "." },
  new String[] { "Char", "Int", "Long", 
                 "Double", "Date", "Text" } 
);

Files of size 10 to 1000000 records are created, and the five standard input methods are tested: List of String arrays, List of Lists, ResultSet, TableModel, and Java Beans. Each file is read 10 times and the timing results averaged.

Results

10 Records, time in milliseconds
10 rows

Where the bars, from left to right, correspond to:

The remaining results are:

100 Records, time in milliseconds
100 records

1000 Records, time in milliseconds
1000 records

10000 Records, time in seconds
10000 records

100000 Records, time in seconds
100000 records

1000000 Records, time in seconds
1000000 records

Analysis

First we divide the time taken by the number of records, to demonstrate that the data rate remains basically constant. time over records

Second, we take log10 of the times, to show that the parsing algorithm is 0(N). log10 of time

Data

The original data used to produce these graphs is available as a CSV file so that you can verify the results for yourself. In addition, we provide the source code of the performance test class and the test file creator class so that you can run the tests to confirm these results.

FREE Email Support

All XML Manager licenses include a FREE 6 month Email Support Package, worth $1500.00.

Email Support Package

FREE CSV Manager

All XML Manager licenses include a FREE CSV Manager single developer license, worth $170.00.

Convert CSV to XML

Competition!

Win a FREE XML Manager license by writing some clever XPath!

How to Win

Easy XML Access

The XML Manager component lets you access your XML data using standard Java objects such as List, TableModel, and ResultSet.

Getting Started

"We use XML to process large volumes of transactions, and our nightly jobs were becoming all-day jobs. We replaced our old DOM code with a few XML Manager XPaths and the whole thing was really easy. Our production servers are running fine and the all the jobs are completed on time."
Derek Conniffe,
Rivertower
comment on this page Home | Search | About Us | Contact Us | Our Products | Documentation | Resources | Login
Copyright © 2004-2010 Ricebridge. All Rights Reserved.