写点什么

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:426428
用户头像

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

关注

评论

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

多台服务器的所有容器,我是这样统一管理的

Yops-运维易

容器 运维 服务器 Linux 运维 #docker

哈尔滨等保测评公司选择:企业适配性筛选策略

等保测评

技术干货 | 如何将大表在线改造为分区表并释放空间

GreatSQL

官宣:Apache Cloudberry (Incubating) 2.0.0 发布!

酷克数据HashData

Apache 数据库 开源 Cloudberry

YashanDB性能监控核心指标及优化实战

数据库砖家

原点安全签约秦皇岛银行,大模型助力分类分级与数据安全防护体系构建

原点安全

AI技术助力传统行业数字化转型

跑一跑

AI‘’

YashanDB数据压缩技术及存储优化技巧

数据库砖家

YashanDB数据一致性保障机制及实现

数据库砖家

YashanDB数据一致性保障机制详解

数据库砖家

YashanDB性能调优实战,提升数据库响应速度

数据库砖家

YashanDB性能优化攻略,提高数据库响应速度实用技巧

数据库砖家

旅行规划新纪元:腾讯元宝大模型 × MCP Server扩展生态

六月的雨在InfoQ

黑龙江等保测评:从启动到闭环的全周期流程拆解

等保测评

系统梳理 Test-Time Compute 的主要实现路径

Baihai IDP

人工智能 AI 推理模型 测试时计算

YashanDB索引设计原则与优化实战技巧

数据库砖家

YashanDB索引优化技巧,提高查询效率

数据库砖家

哈尔滨三级等保:为关键信息系统打造坚固安全防线

等保测评

YashanDB性能监控工具的选择与使用技巧

数据库砖家

淘宝商品详情API数据解析(附代码)

tbapi

淘宝API 淘宝商品数据采集 淘宝商品详情API 淘宝数据分析

YashanDB性能调优实战教程,提升企业数据处理效率

数据库砖家

YashanDB应用开发全面教程

数据库砖家

YashanDB用户权限管理教程,提升企业数据安全等级

数据库砖家

TCA MCP Server | 释放代码潜能,开启极速开发

六月的雨在InfoQ

腾讯云MCP场景教程

“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门

poemyang

分布式 分布式系统 分布式协议 拜占庭将军问题

YashanDB性能监控指标解析及优化建议

数据库砖家

大数据-88 Spark Super Word Count 全流程实现(Scala + MySQL)

武子康

Java 大数据 flink spark 分布式

8 月热搜精选

KaiwuDB

数据库

YashanDB性能分析报告及优化建议分享

数据库砖家

YashanDB性能监控系统搭建及关键指标分析

数据库砖家

YashanDB应用场景解析,助力企业快速决策

数据库砖家

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