JDOM2 Relative JDK Performance

Java manipulation of XML made easy.

The following is a basic metric of the performance characteristics of JDOM2. The identical code/classes are run in Java5, Java6, and Java7. The code is compiled by Java6 JDK with a 1.5 .class target. This is not meant to be a reproducable baseline, rather, it is intended to give an idea of whether a change has improved or decreased the performance.

For details of the actual test cases have a look at the Peformance Page

The following metrics are (currently) produced:

The following tests were run one after the next, on my laptop.


JDK5 with Java5 Results

Java 1.5.0_21 with Java5 targetted JDOM
InputJDOMSAXSAXJDOMDOMJStAXSStAXSJStAXEStAXEJScanDumpDupeXPathCheckedUnChecked
273.14KiB1.98MiB12.75ms5.73ms18.36ms7.98ms13.08ms6.16ms25.69ms9.98ms8.13ms24.91ms25.87ms384.40ms30.74ms23.44ms
273.14KiB1.98MiB12.53ms5.61ms19.13ms8.79ms13.21ms5.95ms25.61ms10.09ms7.83ms24.65ms23.70ms377.92ms27.90ms22.11ms
273.14KiB1.98MiB12.57ms5.58ms19.58ms9.19ms13.38ms6.25ms24.74ms10.04ms7.86ms24.92ms25.22ms375.03ms31.22ms23.46ms
273.14KiB1.98MiB12.32ms5.44ms17.75ms7.53ms12.82ms5.37ms23.18ms8.10ms7.46ms25.11ms22.37ms378.41ms31.12ms22.99ms
273.14KiB1.98MiB12.62ms5.60ms19.15ms8.78ms13.07ms5.95ms28.35ms13.43ms7.93ms25.67ms23.87ms375.18ms27.90ms22.81ms

JDK5 with Java6 Results

Java 1.6.0_26 with Java5 targetted JDOM
InputJDOMSAXSAXJDOMDOMJStAXSStAXSJStAXEStAXEJScanDumpDupeXPathCheckedUnChecked
273.14KiB2.27MiB5.30ms1.41ms7.41ms2.59ms5.56ms1.24ms10.51ms3.19ms3.26ms12.82ms10.71ms74.05ms12.29ms10.40ms
273.14KiB2.27MiB5.42ms1.40ms7.29ms1.93ms5.57ms0.96ms10.35ms3.00ms3.31ms13.37ms10.86ms73.27ms12.24ms9.77ms
273.14KiB2.27MiB5.70ms2.18ms7.38ms2.78ms5.37ms1.16ms9.58ms2.40ms3.21ms12.49ms11.03ms72.08ms12.67ms10.07ms
273.14KiB2.27MiB5.07ms1.73ms7.36ms2.80ms5.59ms1.43ms10.68ms3.26ms3.46ms13.31ms11.00ms72.38ms12.23ms10.75ms
273.14KiB2.27MiB5.35ms1.69ms7.41ms2.72ms5.48ms1.09ms10.63ms3.54ms3.36ms13.28ms11.66ms73.99ms12.06ms10.55ms

JDK5 with Java7 Results

Java 1.7.0 (b147) with Java5 targetted JDOM
InputJDOMSAXSAXJDOMDOMJStAXSStAXSJStAXEStAXEJScanDumpDupeXPathCheckedUnChecked
273.14KiB2.27MiB5.76ms1.95ms8.52ms3.40ms5.73ms1.41ms10.29ms3.35ms3.43ms13.05ms10.53ms31.12ms11.82ms10.02ms
273.14KiB2.27MiB5.16ms0.60ms7.93ms2.85ms5.59ms0.91ms10.36ms2.96ms3.41ms13.39ms10.50ms29.80ms13.61ms10.26ms
273.14KiB2.27MiB4.91ms0.83ms8.02ms2.83ms6.24ms1.78ms9.17ms2.15ms3.55ms14.17ms10.19ms29.96ms11.63ms10.40ms
273.14KiB2.27MiB5.20ms1.50ms7.99ms3.20ms6.04ms2.11ms10.41ms3.57ms3.33ms13.29ms9.90ms29.53ms11.15ms9.80ms
273.14KiB2.27MiB5.06ms1.63ms8.46ms3.41ms5.78ms1.71ms9.56ms2.61ms3.34ms14.30ms10.10ms30.48ms11.49ms9.96ms

JDK6 with Java6 Results

Java 1.6.0_26 with Java6 targetted JDOM
InputJDOMSAXSAXJDOMDOMJStAXSStAXSJStAXEStAXEJScanDumpDupeXPathCheckedUnChecked
273.14KiB2.27MiB5.16ms1.69ms7.32ms2.44ms5.49ms0.84ms10.50ms3.71ms3.31ms12.47ms11.01ms71.70ms12.06ms10.39ms
273.14KiB2.27MiB5.68ms1.90ms7.63ms2.72ms5.35ms1.05ms10.54ms3.51ms3.14ms12.82ms10.50ms73.70ms11.73ms9.75ms
273.14KiB2.27MiB5.64ms1.53ms7.55ms2.95ms5.19ms1.04ms9.73ms2.53ms3.25ms12.21ms10.64ms75.50ms12.31ms10.26ms
273.14KiB2.27MiB5.31ms1.74ms7.34ms2.83ms5.17ms0.91ms10.09ms3.09ms3.24ms13.39ms10.73ms73.57ms12.40ms10.09ms
273.14KiB2.27MiB5.30ms2.13ms7.10ms2.50ms5.27ms1.05ms9.51ms2.64ms3.49ms13.51ms10.38ms73.51ms11.98ms10.06ms

JDK6 with Java7 Results

Java 1.7.0 (b147) with Java6 targetted JDOM
InputJDOMSAXSAXJDOMDOMJStAXSStAXSJStAXEStAXEJScanDumpDupeXPathCheckedUnChecked
273.14KiB2.27MiB5.46ms1.80ms7.36ms2.50ms5.40ms1.03ms9.88ms2.55ms3.42ms13.73ms10.52ms29.79ms11.52ms10.35ms
273.14KiB2.27MiB5.32ms1.34ms7.40ms2.15ms5.00ms0.64ms9.73ms2.67ms3.12ms13.48ms11.20ms29.87ms12.56ms10.13ms
273.14KiB2.27MiB5.48ms1.67ms7.98ms3.33ms5.84ms1.77ms8.99ms2.56ms3.45ms12.91ms10.62ms30.07ms12.54ms11.30ms
273.14KiB2.27MiB5.36ms2.00ms7.79ms2.93ms5.77ms1.51ms10.46ms3.85ms3.35ms14.72ms10.66ms30.72ms12.70ms10.26ms
273.14KiB2.27MiB5.22ms1.86ms7.58ms2.49ms5.48ms1.07ms9.69ms2.26ms3.21ms13.04ms10.67ms29.15ms12.11ms11.95ms