【问题标题】:Groovy parsing JSON vs XMLGroovy 解析 JSON 与 XML
【发布时间】:2008-10-07 19:44:46
【问题描述】:

使用 groovy,您是否期望在读取和查询 JSON 与 XML 的速度和内存开销方面有更好的性能?

【问题讨论】:

    标签: xml json serialization grails groovy


    【解决方案1】:

    JSON 比 XML 更小更简单。我敢打赌 JSON 解析速度更快。

    YAML 会更快。

    【讨论】:

    • 我认为 YAML 是 JSON 的超集......所以如果用 JSON 解析的东西更少,那不是更快吗?
    • yaml.org YAML 与 JSON 不同。解析该 JSON 时更具表现力且更简单。
    • redhanded.hobix.com/inspect/yamlIsJson.html 所有 JSON 都是有效的 YAML,因此 YAML 可以被认为是 JSON 的超集。
    • 否:YAML 肯定不会更快。它更复杂,解析器必须做更多的工作。它可能会比最快的 xml 解析器(参见“Aalto”)慢。 Java 的 JSON 实现可以比 xml 更快,但它更多地取决于处理模型和实现而不是数据格式。
    • 我不确定 YAML 与 JSON 的区别,但我相信它们中的任何一个都会比 XML 更快地处理。我认为 StaxMan 的意思是“Java 的 JSON 实现可以比 FOR xml 更快”,但如果我错了,他总是可以纠正我。
    【解决方案2】:

    如果速度真的是个问题,我宁愿使用 java 库来解析我想要的任何东西,而不是依赖 Groovy 的实现。

    【讨论】:

      【解决方案3】:

      如果它是相同的架构和相同的信息,内存使用将几乎相同。两者之间的性能应该可以忽略不计。

      【讨论】:

        【解决方案4】:

        我相信,如果架构和数据相同,那么除了分析器之外的任何东西都无法检测到性能差异。也就是说,如果您使用了错误的 XML 解析器,您可能会看到很大的不同。换句话说,SAX 实现可以轻松匹配或可能优于 JSON 解析。有很多外部因素需要考虑。如果您想要真实的故事,请在相同的数据/模式中同时使用 JSON 和 SAX 解析器,而无需额外的逻辑。巨大的节省来自用于解释解析的逻辑。根据您的需求,使用 DOM 或拉解析器可能更简单,而 SAx 会导致过于复杂的非性能解决方案。解析器之间也存在显着差异。添加文件大小的变量,你很快就会失去你实际测量的范围。另一个示例,如果您的 XML 包含必须通过网络解析的 DTD 描述和实体引用,并且您的网络连接具有高延迟,那么您可以看到 JSON 的改进。这一切都归结为你真正想做的事情。

        【讨论】:

          【解决方案5】:

          由于尖括号和额外信息等原因,XML 比 JSON 开销更大。因此,任何好的解析器都应该能够比 XML 更快地解析 JSON。

          【讨论】:

          • “多一点”?那是慈善。我发现“船载更多”更准确。也许我只是在看非常糟糕的 XML。
          • 实际上,核心 xml 1.0 并没有那么多对 解析 重要的东西:只有命名空间、换行规范化和 DTD 实体处理(实际上这是一件大事)如果使用 DTD。变得复杂的是所有其他(可选)xml cruft;如果您使用 XML Schema、DTD、XSLT 等。
          猜你喜欢
          • 1970-01-01
          • 2023-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-10
          • 1970-01-01
          • 2023-03-18
          • 2012-08-11
          相关资源
          最近更新 更多