QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配

OpenAnolis小助手

操作系统 龙蜥社区 兼容适配 安全联盟 安恒信息

Mac苹果电脑无线鼠标连不上怎么办

柠檬与橘子

鲸鸿动能加入气候行动,与野生救援(WildAid)探索公益新玩法

最新动态

哪款国产堡垒机好用便宜实惠?大家推荐一下!

行云管家

网络安全 数据安全 堡垒机 国产

ByConity 技术详解之 ELT

字节跳动开源

大数据 开源 实时数仓 Clickhouse 数仓

软件测试/测试开发丨利用人工智能ChatGPT自动生成架构图

测试人

人工智能 软件测试 ChatGPT

如何正确地计算经过时间(elapsed time)

redcoder54

Java 时钟同步

软件测试/测试开发丨ChatGPT在测试计划中的应用策略

测试人

人工智能 软件测试 测试开发 ChatGPT

华秋应邀精彩亮相IOTE物联网展

华秋电子

IOTE

从 Hackathon 战队到创业公司,和开发者们聊聊真实世界 AI Apps 的基础设施丨活动预告

PingCAP

数据库 开发 hackathon TiDB pingCAP

深入探讨Java面试中内存泄漏:如何识别、预防和解决

程序那些事

Java 程序那些事 面试秘籍

2023 届的字节跳动技术新人,个个都是宝藏同学

字节跳动技术范儿

字节跳动 offer 校招

基于Kubernetes的Serverless PaaS稳定性建设万字总结

Serverless Devs

云计算 Serverless 运维 托管

【效率提升】maven 转 gradle 实战 | 京东云技术团队

京东科技开发者

maven 编译 Gradle 打包工具 企业号9月PK榜

深度学习之“切图”

矩视智能

深度学习

聊聊wireshark的进阶使用功能 | 京东云技术团队

京东科技开发者

网络协议 Wireshark 抓包 企业号9月PK榜

入门有监督学习:数据、模型、度量

麦田的守望者

机器学习 有监督学习

企业微信 API 接口调用教程:从入门到精通

Liam

后端 后端开发 API 开放 API 企业微信开发

脱颖而出!云起无垠荣获第二届“陇剑杯”优胜奖

云起无垠

一篇聊聊Mybatis插件开发

互联网工科生

sql 数据 mybatis

Golang 的 GMP:并发编程的艺术

树上有只程序猿

golang GMP

广东汕头等保测评机构有哪些?位于哪里?

行云管家

等保 等级保护 等保测评 汕头

这个时代,由消费主导的敏态数据更值钱

ToB行业头条

干货丨中国移动5G数字工厂引领工业数字化未来(附PPT)

工赋开发者社区

PPT | 智能工厂生产制造执行系统(MES)建设方案

工赋开发者社区

文档信息抽取技术:从非结构化文本到结构化信息的旅程

合合技术团队

人工智能 技术 文档 文档抽取

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