我使用不同的解析器 Parser X (XOM) 和 Parser Y (DOM) 在 Java 中编写了相同的 XML 解析算法。我将代码嵌入到 200 万次循环中,以模拟我需要执行的操作数量,并使用 Java 分析器来监控性能。测量如下所示。
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 时间性能的差异反映在现实生活中。