2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

XML 能够拥有与 JSON 相当的性能

  • 2013-08-14
  • 本文字数:1004 字

    阅读完需:约 3 分钟

对于与 JSON 的轻量级负荷相比,“胖” XML 是如何缓慢、如何消耗资源的众多推测,都在 David Lee 的一项测试面前败下阵来。David 是 Marklogic 的首席工程师,他的实验使用 33 份不同文档,对最常用的浏览器和操作系统做了接近 1200 项测试。而后他表示,实验发现, 对于总体用户体验方面的性能来说(传输、解析和查询某文档),XML 和JSON 格式几乎难分轩轾。

在实验中,David 创建了一个公开测试环境,模拟了这样的用例:使用Web 服务器传输XML 和JSON 文档,并在Web 浏览器中解析和查询。服务器为客户端提供源数据并收集客户端提交的结果。客户端是一个基于浏览器的JavaScript 应用,其中除了测试jQuery 性能的部分外,还包含了使用JavaScript 人工编写的性能测试部分。

David 使用了 7 份不同文档,它们的大小分布在从 100KB 到 1MB 的区间里,并且每份文档采用两种 JSON 和三种 XML 变体。此外,他还尝试让测试覆盖大量的设备、浏览器、操作系统和网络。为了实现这一目的,他采用了“众包”的方式,也即将测试环境 URL 公布出来,并发布到一系列邮件列表和社交媒体网站上。迄今为止,已经成功收集了接近 1200 份独立、有效的测试结果,覆盖了最常用的浏览器和操作系统。在文章中,David 记录了全部测试数据,以及来自不同测试的结果。

通过该实验,David 得出的部分结论如下:

  • 解析速度与使用的技术有关。一般来说,纯 JavaScript 解析 XML 比解析 JSON 表现要好,而对 JSON 的查询速度一般则更快一些。不过对两种格式也都存在一些测试结果相反的例外。
  • 使用 JavaScript 库 jQuery ,会对 JSON 造成严重的影响,而对 XML 来说则更糟。
  • 用各种格式压缩后的文档——即使对非常大的 JSON 或 XML 文档——两种格式都会压缩到近乎同样的大小,这意味着他们实际上包含几乎一样的信息内容。
  • 当将文档传输到广泛的设备上时,对每个终端来说传输所花费的时间几乎都是相同的,而与标记格式无关

基于他的实验,David 为架构师和开发者提出了若干建议,包括:

  • 使用 HTTP 压缩,在大多数情况下它是对整体性能影响最大的单一因素。
  • 优化传输和查询的标记。
  • 除非与其他问题相比,数据传输、解析和查询是显著问题,否则不要进行优化。

最后,David 给出了一条忠告:

不要轻信任何人。

不要盲目地相信别人告诉你的东西。自己动手实验,基于自己的用户和设备来测试自己的数据和代码。那些“看起来显而易见”的事情并不总是对的。

查看英文原文: XML Can Give the Same Performance as JSON

2013-08-14 02:426359
用户头像

发布了 256 篇内容, 共 86.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

什么是零代码?零代码开发可以带来的好处

代码制造者

可视化 零代码 编程效率

一位区块链产品经理讲述“区块链”的通知 重点方向包括区块链安全

CECBC

物联网 区块链技术 联盟链

读书,区分一二三四手知识

dd多了个多

读书笔记

总结

chenzt

JVM 垃圾回收原理

周冬辉

大厂的人才衡量标准

池建强

人才标准

第九周总结

andy

周子衡 | 数字资产、数字支付及跨境活动——以美元数字化为例

CECBC

加密货币 数字资产

架构训练营第九周作业

张锐

架构师训练营第九章作业

叮叮董董

汇丰坠落:世间已无「日不落」

钛禾产业观察

汇丰 财经

前端面试vue部分(1)——谈谈你对MVVM的理解

dd多了个多

面试 Vue 大前端 Web

我是如何写读书笔记的

dd多了个多

读书笔记

读书时,如何提炼文章架构形成思维导图

dd多了个多

读书笔记 读书感悟

应用开发基础知识-文件系统

superman

文件系统

消息队列面试热点一锅端

yes

kafka 面试 RocketMQ 消息队列

第九周作业

andy

极客大学

架构师训练营第9周

大丁💸💵💴💶🚀🐟

湾区金科沙龙,华青融天技术总监吴伟平详解旁路式应用性能监控

DT极客

Kafka集群缩容实战

我是个bug

大数据 kafka 运维 Big Data

起伏激荡的以太网,抱上这条大腿才能乘风破浪

脑极体

作业1

chenzt

前端面试 vue 部分 (2)——Vue是如何实现双向绑定的

dd多了个多

面试 Vue 大前端 Web

垃圾回收

Mr.Monkey

百度安全研究院:区块链智能合约介绍

百度安全

比特币 区块链 智能合约 以太坊

1.8w字 | 初中级前端 JavaScript 自测清单 - 2

Geek_z9ygea

Java 大前端

LeetCode题解:189. 旋转数组,3次翻转,JavaScript,详细注释

Lee Chen

大前端 LeetCode

VIPKID 在线教育场景下的实时计算技术落地和实践

Apache Flink

flink

Java 垃圾回收

dongge

《深度工作》学习笔记(4)

石云升

学习 读书笔记 习惯 专注 深度工作

秒杀系统的挑战和应对方案

2流程序员

XML能够拥有与JSON相当的性能_SOA_Jan Stenberg_InfoQ精选文章