xml: 374K
xsl: 71K
AltovaXML
不使用 xsl:key 的时候,需要查询 4k 次数据,耗时 45s+
使用 xsl:key 的时候
xslt2:
real 0m11.102s
user 0m0.015s
sys 0m0.030s
xslt1:
real 0m28.176s
user 0m0.015s
sys 0m0.015s
本来蛮高兴的,后来,改用 msxml4 和 xslt1,耗时 1s
@_@
再改用 Saxon8n,总使用 xsl:key
xslt2:
Execution time: 875 milliseconds
Memory used: 5284564
real 0m2.153s
user 0m0.031s
sys 0m0.000s
xslt1: 初次执行是 8s,多次执行后
Execution time: 1187 milliseconds
Memory used: 7030408
real 0m2.455s
user 0m0.015s
sys 0m0.015s
可惜 Saxon8n 使用 .net,安装文件包含 GNU Classpath,要 5M :(
Saxon8 的调试输出真的是非常好用,那么以后就用它来调试 xslt 吧。
那,我工作时做的东西真的是非常简单,就是把数据库导出的表格,转换成 fo 而已。
我们用不到 xslt2,也不在乎 0.3s 的性能提升(因为不一定比 msxml4 快)。
update:
果然如此,msxml4 实在是太快了。初次运行时,速度是 0.8s 的样子,此后都少于 0.4s
Command Line Transformation Utility (msxsl.exe)
real 0m0.394s
user 0m0.031s
sys 0m0.015s
有时间要拿去和传说中的 XT 比一比
update:
NXSLT2.exe 也就是 msxml6 不算是很快。
real 0m3.335s
user 0m0.015s
sys 0m0.015s
update:
XT 的结果,java 还是蛮快的!并且多次运行也是这个结果。
real 0m1.344s
user 0m0.015s
sys 0m0.031s
update:
saxon8j
xslt1
real 0m2.652s
user 0m0.031s
sys 0m0.016s
xslt2
real 0m2.551s
user 0m0.031s
sys 0m0.015s
time saxon8n/Transform.exe -novw -t -o %3 %1 %2
time AltovaXML2006/AltovaXML /xslt1 %2 /in %1 /out %3
time ./msxsl.exe -t -o %3 %1 %2
time ./nxslt2.exe -t -o %3 %1 %2
time java -cp lib/xp.jar\;lib/xt.jar com.jclark.xsl.sax.Driver %1 %2 %3
time java -cp lib/saxon8.jar net.sf.saxon.Transform -t -novw -o %3 %1 %2
( Read more... )