gpt4 book ai didi

XML 解析性能 DOM 与 XOM

转载 作者:行者123 更新时间:2023-12-04 04:52:37 25 4
gpt4 key购买 nike

我使用不同的解析器 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 专用于完成该过程的时间,而正常运行时间是机器在我们的 watch 上完成该过程所花费的总时间?
  • 为什么解析器 Y 的运行时间与解析器 X 相同,但 CPU 时间要低得多,尽管该测量是平均值而不是一次运行的结果。
  • 让Parser Y 的up time 更短这样CPU 时间性能的差异在现实生活中是否可行。
  • 最佳答案

    如果您想快速处理 XML,您应该使用一种工具,该工具将直接从您的架构生成自定义 XML 阅读器。这些避免了 DOM 的一般开销。它们还倾向于为您的应用程序提供对特定 XML 内容的直接访问 API,包括以自然方式表示的数据(例如,实数数据的浮点数而不是文本字符串)。

    以下是一些:

  • Altova
  • CodeSynthesis
  • XMLBooster (有一些基准)

  • 我对这些工具没有特别的经验。 (我确实出于内部目的编写了其中之一)。

    关于XML 解析性能 DOM 与 XOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17209578/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com