BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Groovy 2.3使用快得多的JSON解析器

| 作者 Matt Raible 关注 11 他的粉丝 ,译者 孙镜涛 关注 2 他的粉丝 发布于 2014年5月6日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Ubiquitous公司的顾问和创始人Rick Hightower透露Groovy 2.3将会提供一个最快的JVM JSON解析器。在文章JSON序列化基准中Hightower宣称Groovy的JSON支持和Boon JSON解析器在解析字符串和字符数组的时候比现在的Jackson解析器快3到5倍。

俄国开发者Andrey Bloschetsov创建了一个json基准GitHub项目,目的是对所有流行的JVM JSON解析器进行基准测试并比较。该项目对JacksonGsonBoonGroovy 2.3的性能做了比较。

为了测试每一个解析器,该项目选择了很多不同结构的数据:

  • Citys——一个简单对象的大数组(有29470个条目)。紧凑的json表示文件大约有2.5MB。
  • repos.json——一个包含4个复杂结构对象的数组。紧凑的json表示文件大约342.8KB。
  • user.json——包含一个复杂结构的对象。紧凑的json表示文件大约4.2KB。
  • response.json——包含一个简单结构的对象。紧凑的json表示文件大约425B。

序列化功能使用了下面两个变体测试:

  • pojo——对象被表示为POJO对象。
  • Maplist——对象被表示为Map。

反序列化仅使用了一个单独的转换用例进行测试:将String转化成Map。

测试的结果是Boon表现最好,Groovy 2.3次之,Jackson第三,Gson表现最差。

为了了解这个结果对Groovy意味着什么,InfoQ采访了Pivotal公司的Groovy项目经理Guillaume Laforge

InfoQ:是什么原因让你决定分支Boon并在Groovy 2.3中使用它?

我一直在跟随Rick Hightower在Boon框架上的工作,我对他的JSON解析技术所表现出来的速度有非常深刻的印象。因此我联系了他,询问他是否可以将这个解析技术改造到我们已有的、数年之前为Groovy开发的JSON支持中。Rick非常友好地提供了帮助,分支Boon并让它作为我们JSON解析器的基础解析技术。同时他的基准发布的结果也让人印象非常深刻。

InfoQGroovy 2.3中的JSON解析器比之前版本中的解析器快多少?

很显然,这与你处理的JSON负载类型、采用什么标准衡量等方面息息相关,但是根据我从基准收集来的数据看,你可以认为Groovy的JSON解析(因此Rick的Boon解析器也是如此)比现在可用的其他JSON类库至少要快3到4倍。

InfoQGrails用户什么时候才能使用Groovy 2.3

我们的计划是在一星期左右的时间之内发布Groovy 2.3,这样打算在5月中旬发布的Grails 2.4就能集成Groovy 2.3了。本周发布的Grails 2.4的第二个里程碑实际上已经包含了Groovy 2.3-beta-2。因此Grails用户应该在几周之内就能使用Groovy 2.3。

查看英文原文Groovy 2.3 gets a much faster JSON Parser

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

国产的fastjson也应该主动些啊 by 黄 海平

发布个开源的测试用例和报告吧

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT