|
hello,
This mail is meant for the developers of the Xalan
package, Java version.
We are writing an application which reads and
processes an XML file to read our data from.
Used quite a lot in our code are the XPath api's
from Xalan. (mostly used class : XPathAPI )
Recently we've upgraded to a more recent release of
Xalan (being some 2.2 developer release ) and noticed an alarming DEcrease of
the processing speed.
We noticed this because one of our developers had
an astonishing advantage over everybody else.
Using the quickest distribution, our app can parse
this document in 8 seconds, no matter which development machine we use.
(ranging from Celeron 600 tot PIII 1Gz). Switching
to a 2.2 development version, this suddenly jumps to a minute to a minute and a
half.
To verify this out, I automated parts of our
application and tried some combinations of Xerces releases with Xalan
releases.
Here are my results (milliseconds) :
--------- Test using xalan:21 xerces:114 . Done in : 14110 --------- Test using xalan:D6 xerces:114 . Done in : 63625 --------- Test using xalan:D8 xerces:114 . Done in : 61656 --------- Test using xalan:D9 xerces:114 . Done in : 62141 --------- Test using xalan:D10 xerces:114 . Done in : 62516 --------- Test using xalan:D11 xerces:114 . Done in : 63110 --------- Test using xalan:21
xerces:20beta3 . Done in : 12360
--------- Test using xalan:D6 xerces:20beta3 . Done in : 64968 --------- Test using xalan:D8 xerces:20beta3 . Done in : 61968 --------- Test using xalan:D9 xerces:20beta3 . Done in : 62859 --------- Test using xalan:D10 xerces:20beta3 . Done in : 61250 --------- Test using xalan:D11 xerces:20beta3 . Done in : 64453 So the fastest seems to be Xalan2.1 with the latest
Xerces.
Remarkable are the huge differences in speed
between 2.1 and 2.2Dx.
I got a compiler exception compiling my sources
using Xalan 22 D13 !!
C:\xalantest\demo>javac -classpath
.;./src;./lib/xerces144.jar;./lib/xalan22D13. jar;./lib/log4j.jar;./lib/acrobat.zip;./lib/MRJToolkitStubs.zip -deprecation -d ./classes ./src/les/LES.java An exception has occurred in the compiler (1.3.1-rc2). Please file a bug at the Java Developer Connection (http://java.sun.com/cgi-bin/bugreport.cgi). Include your program and the following diagnostic in your report. Thank you. com.sun.tools.javac.v8.code.Symbol$CompletionFailure: file javax\xml\transform\T ransformerException.class not found at com.sun.tools.javac.v8.code.ClassReader.fillIn(ClassReader.java:997) at com.sun.tools.javac.v8.code.ClassReader.complete(ClassReader.java:952 ) at com.sun.tools.javac.v8.code.Symbol.complete(Symbol.java:366) at com.sun.tools.javac.v8.code.Type$ClassType.supertype(Type.java:812) at com.sun.tools.javac.v8.code.Symbol$ClassSymbol.isSubClass(Symbol.java :622) at com.sun.tools.javac.v8.comp.Check.isUnchecked(Check.java:541) at com.sun.tools.javac.v8.comp.Flow.markThrown(Flow.java:255) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:748) at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:785) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:848) at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:744) at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:785) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:848) at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:744) at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:785) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:848) at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:744) at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:785) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:766) at com.sun.tools.javac.v8.tree.Tree$Assign.visit(Tree.java:848) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeExpr(Flow.java:339) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:719) at com.sun.tools.javac.v8.tree.Tree$Exec.visit(Tree.java:699) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeStat(Flow.java:394) at com.sun.tools.javac.v8.comp.Flow.analyzeStats(Flow.java:413) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:520) at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:492) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeStat(Flow.java:394) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:626) at com.sun.tools.javac.v8.tree.Tree$Try.visit(Tree.java:642) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeStat(Flow.java:394) at com.sun.tools.javac.v8.comp.Flow.analyzeStats(Flow.java:413) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:520) at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:492) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeStat(Flow.java:394) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:488) at com.sun.tools.javac.v8.tree.Tree$MethodDef.visit(Tree.java:441) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeDef(Flow.java:379) at com.sun.tools.javac.v8.comp.Flow._case(Flow.java:456) at com.sun.tools.javac.v8.tree.Tree$ClassDef.visit(Tree.java:402) at com.sun.tools.javac.v8.comp.Flow.analyze(Flow.java:321) at com.sun.tools.javac.v8.comp.Flow.analyzeDef(Flow.java:379) at com.sun.tools.javac.v8.JavaCompiler.compile(JavaCompiler.java:380) at com.sun.tools.javac.v8.Main.compile(Main.java:247) at com.sun.tools.javac.Main.main(Main.java:16) BTW : Is there a way I can identify a Xalan or
Xerces version ? Which class(-member) is holding a release number
?
Is this number detailed enough to cover
beta-versions as well ?
thanks,
Geert |
- Re: Benchmarking Xalan Geert Poels
- Re: Benchmarking Xalan Scott_Boag
- Re: Benchmarking Xalan Geert Poels
