我用Java使用不同的解析器解析器X(XOM)和解析器Y(DOM)编写了相同的XML解析算法。我将代码嵌入到200万次循环中以模拟我需要执行的操作数量,并使用Java Profiler监视性能。测量如下所示。XML解析性能DOM与XOM
Parser X (XOM) Parser Y (DOM)
Heap Memory 6.82 7.9
Non-heap memory 14 15
Garbage Collector 617 collections \ 2 sec 523 collections \ 1 sec
Up time 1 m 53 s 1 m 54 s
CPU time 1 m 2 s 44.8 s
我有几个问题。
如果我想处理大约200万个大小达到100 MB的XML,该怎么办?哪一个更好,以获得更好的性能。性能是以时间来衡量的(无论机器利用率如何,我都有更快的处理所有XML的机器,因为我有专门的机器来处理这个过程)。简而言之,内存VS CPU时间VS正常运行时间更长
利用完整的CPU电源可以更快完成吗?多线程?
如果我想测量性能。我应该使用CPU时间还是使用时间。我知道CPU时间是CPU专用于完成该过程的时间,而上升时间是机器完成该过程所花费的总时间?
为什么Parser Y与Parser X的时间相同,但CPU时间要低得多,尽管事实上这个测量并不是单次运行的结果。
是否可以使Parser Y的运行时间缩短,以便CPU时间性能的差异反映在现实生活中。
您是否试图获得最佳性能?那么它可能不是dom,或者是xom,它是vtd-xml –