加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

JSON 库之性能比较:JSON.simple VS GSON VS Jackson VS JSONP

发布时间:2019-05-25 13:29:11 所属栏目:建站 来源:程序猿猩球
导读:Java 中哪个 JSON 库的理会速率是最快的? JSON 已经成为当前处事器与 WEB 应用之间数据传输的公认尺度,不外正如很多我们所习觉得常的工作一样,你会认为这是理所虽然的便不再深入思索了。我们很少会去想用到的这些 JSON 库到底有什么差异,但究竟上它们的

 JSON 库之机能较量:JSON.simple VS GSON VS Jackson VS JSONP

Java 中哪个 JSON 库的理会速率是最快的?

JSON 已经成为当前处事器与 WEB 应用之间数据传输的公认尺度,不外正如很多我们所习觉得常的工作一样,你会认为这是理所虽然的便不再深入思索了。我们很少会去想用到的这些 JSON 库到底有什么差异,但究竟上它们简直是不太一样的。因此,我们运行了一个基准测试来对常用的几个 JSON 库举办了测试,看看在理会差异巨细的文件时哪个库的速率是最快的。下面我会把功效分享给各人。

JSON 凡是用于传输及理会大文件。这对运行在 Hadoop 可能是 Spark 集群上的数据处理赏罚措施而言是个很常见的场景。在给定的文件巨细下,你可以看到差异库之间的理会速率存在着明明的不同。

高吞吐量的环境下,会频仍地传输并理会小文件,因此一开始的时辰也许机能的差距并不明明。但假如你必要在很是高负载下频仍地理会大量的小文件,差距就开始增大了。微处事及漫衍式架构常常会行使 JSON 来传输此类文件,由于这已经是 WEB API 的究竟尺度。

不是全部的 JSON 库都叫” 特仑苏”。怎样按照行使场景才选择正确的库是相等重要的。但愿这个基准测试可以或许对你有所辅佐。

JSON 库

JSON.simple vs GSON vs Jackson vs JSONP

我们选择了四个主流的 JSON 库来举办基准测试:JSON.simple, GSON, Jackson 以及 JSONP。在 Java 中举办 JSON 理会凡是城市用到这几个库,选择它们的缘故起因是它们在 Github 项目中的表态频率很高。

下面即是我们所测试的 JSON 库:

  • Yidong Fang 的 JSON.simple 。JSON.simple 是一个 JSON 编解码的 Java 器材库。它旨在打造一个轻量简朴且高机能的器材库。
  • Google 的 GSON。GSON 这个 Java 库可以或许在 Java 工具和 JSON 间举办彼此转换。同时它还提供了对 Java 泛型的完备支持,并且还不必要你在类上面添加注解。无需添加注解行使起来则更为便捷,同时在无法修改源代码的环境下这照旧一个须要的先决前提。
  • FasterXML 的 Jackson 项目。Jackson 是一个数据处理赏罚的器材套件,它的亮点是流式的 JSON 理会器及天生器。它是专为 Java 计划的,同时也能处理赏罚其余非 JSON 的编码。从我们在 Github 中的统计来看,它应该是最风行的 JSON 理会器。
  • Oracle 的 JSONP。JSONP (JSON Processing) 是 JSON 处理赏罚的一套 Java API, 从名字来看它就是用来天生及理会 JSON 串的。这是 JSR353 类型的一个开源实现。

基准测试

我们同时行使大文件和小文件对这些库举办了基准测试。跟着文件巨细的差异,处理赏罚这些文本所必要的体系资源也会随之上升。

这个基准测试首要存眷两个要害场景:大文件下 (190MB) 的理会速率与小文件(1KB)下的理会速率。大文件取自这里。小文件是从这里随机天生的。

不管是大文件照旧小文件,我们城市用统一个库一再运行 10 次。对付每一个大文件,我们城市用统一个库来别离运行 10 次。而对付小文件,在单个库的单次运行中会一再执行 10000 次。在小文件测试的各次迭代中,文件内容都不会驻留在内存里,测试所运行的呆板是 AWS 的 c3.large 实例。

大文件的完备测试功效如下,我对小文件的功效求了个均匀值。

大文件功效

JSON 库之机能较量:JSON.simple VS GSON VS Jackson VS JSONP

功效相差甚大!Jackson 与 JSON.simple 领跑了这轮测试,整体来看 Jackson 又要略优于 JSON.simple。从测试运行的均匀功效来看,Jackson 与 JSON.simple 在大文件上的示意要优越一些,而 JSONP 排名第三落伍甚远,GSON 更是遥遥垫底。

我们再把功效换算成百分比看下。均匀来看 Jackson 要胜出一筹。下面是功效的百分比数据,可以从两个维度来举办较量:

JSON 库之机能较量:JSON.simple VS GSON VS Jackson VS JSONP

差异库之间的机能不同实在不小。

结论:Jackson 以略微上风胜出。JSON.simple 紧随厥后,而剩下两个库则远远落伍。

小文件功效

JSON 库之机能较量:JSON.simple VS GSON VS Jackson VS JSONP

上表记录的是对每个文件理会 10 次的均匀时刻,总的均匀时刻见下方。各个库在小文件测试中夺冠的次数如下:

  • GSON - 14
  • JSONP - 5
  • Jackson -1
  • JSON.simple - 0

这个功效貌似很有说服力。然而,从全部文件的均匀功效来看,GSON 这个冠军照旧当之无愧的,JSON.simple 和 JSONP 的二三名之争应该没什么牵挂。Jackson 这轮却是垫底了。尽量 JSON.simple 没有在任何文件上夺得第一,但总体来看它的理会速率却是排名第二位的。而 JSONP 尽量在很多文件上都拿到了冠军,但均匀来看却只拿到了第三名的后果。

尚有一个值得留意的是,尽量 Jackson 是这轮最慢的库,可是它在全部文件中的示意都很是同等,其余三个库固然偶尔会比 Jackson 快许多,但在另一些文件上的理会速率却是各有千秋乃至更差。

我们再把这些数字转换成百分比看看,照旧同样的两个维度:

JSON 库之机能较量:JSON.simple VS GSON VS Jackson VS JSONP

和大文件测试对比,这次的差距相对要小一些,但也照旧不容忽视的。

结论:很不幸的是,JSON.simple 又以薄弱的劣势与冠军当面错过,这轮 GSON 胜。JSONP 还是千大哥三而这回 Jackson 则赶了个晚集。

总结

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读