Ubiquitous公司的顾问和创始人Rick Hightower透露Groovy 2.3将会提供一个最快的JVM JSON解析器。在文章JSON序列化基准中Hightower宣称Groovy的JSON支持和Boon JSON解析器在解析字符串和字符数组的时候比现在的Jackson解析器快3到5倍。
\俄国开发者Andrey Bloschetsov创建了一个json基准GitHub项目,目的是对所有流行的JVM JSON解析器进行基准测试并比较。该项目对Jackson、Gson、Boon和Groovy 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解析器的基础解析技术。同时他的基准发布的结果也让人印象非常深刻。
\
InfoQ:Groovy 2.3中的JSON解析器比之前版本中的解析器快多少?
\\\很显然,这与你处理的JSON负载类型、采用什么标准衡量等方面息息相关,但是根据我从基准收集来的数据看,你可以认为Groovy的JSON解析(因此Rick的Boon解析器也是如此)比现在可用的其他JSON类库至少要快3到4倍。
\
InfoQ:Grails用户什么时候才能使用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。
\