【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

专精特新“广东造” | 华大北斗:从“芯”出发 挺起产业“脊梁”

江湖老铁

Native Instruments Kontakt 7 for Mac v7.8.1激活版下载

iMac小白

漫谈数据分布可视化分析

百度Geek说

数据分析

探秘SuperCLUE-Safety:为中文大模型打造的多轮对抗安全新框架

不在线第一只蜗牛

人工智能 大模型 ChatGPT

不懂技术也能轻松搭建网站!美国虚拟主机的简易指南!

一只扑棱蛾子

虚拟主机 美国虚拟主机

听 GPT 讲 client-go 源代码 (11)

fliter

跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA)

汀丶人工智能

人工智能 自然语言处理 LLM 医疗大模型

AI技术革命下的平台能力升级:大模型时代的挑战与机遇

百度开发者中心

人工智能 大数据 计算 大模型

JavaScript 的新数组分组方法

EquatorCoco

JavaScript 数组 开发语言

Metasequoia 4 for Mac(水杉3D建模器) v4.8.6e激活版

iMac小白

【前沿技术】 阿里开源搜索引擎Havenask的消息系统

阿里技术

搜索引擎 消息系统 Havenas 阿里开源

语言大模型的现状与未来趋势

百度开发者中心

深度学习 大模型 人工智能、

2024年,你应该知道的Linux新命令

伤感汤姆布利柏

小程序SDK在金融、医疗和教育等场景中的安全性保障

Geek_2305a8

SD-WAN如何降低运维成本、简化运维工作?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

听 GPT 讲 client-go 源代码 (12)

fliter

真香!NineData SQL 开发全面适配 GaiaDB

NineData

数据库 百度云 数据源 NineData GaiaDB

分享6个当下最受欢迎的 Vue UI 库

伤感汤姆布利柏

CyberData镜像增量构建实践

数新网络官方账号

镜像增量 增量构建

什么是DevOps

华为云PaaS服务小智

DevOps 软件开发

OpenAI Sora 关键技术详解:揭秘时空碎片 (Spacetime Patches) 技术

Baihai IDP

程序员 AI openai 白海科技 sora

Aiseesoft AnyCoord for Mac(GPS虚拟定位软件) v1.0.36激活版

iMac小白

低代码开发:拖拉拽自定义表单的创新之道

这我可不懂

软件开发 低代码

浅谈数据分析工具在智慧城市中的作用

伤感汤姆布利柏

网络技术探析:SDN、SD-WAN、CDN和SDH的关联与演进

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

SD-WAN保障tiktok海外直播网络的稳定性

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

华为云软件开发生产线CodeArts前端DevOps实践

华为云PaaS服务小智

云计算 软件开发 华为云

graphpad prism for Mac(专业医学绘图工具) v10.2.0激活版

iMac小白

Garden Planner for Mac(园林绿化设计软件) v3.8.58注册激活版

iMac小白

低代码平台源代码交付的重要性

互联网工科生

源码 软件开发 低代码

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