如何让json jackson更快?

时间:2014-03-03 06:28:15

标签: java json jackson

这行代码大约需要2秒钟才能执行!

ObjectMapper mapper = new ObjectMapper();

因为两秒钟是计算机的生命周期,有没有办法让杰克逊更快地做出响应?

我正在使用:

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

1 个答案:

答案 0 :(得分:0)

您使用的Jackson版本是旧版本,请考虑升级到Jackson 2.0。可能需要做一些努力(取决于您使用的API),但任何新功能和性能增强可能仅为2.x.有关更多信息和升级说明,请查看Jackson Release: 2.0

至于ObjectMapper,这就是Jackson Best Practices: Performance所说的:

  

ObjectMapper:对象mappers缓存序列化器和反序列化器,这些序列化器和反序列化器是为给定类型首次需要处理程序创建的(或者更确切地说,mapper保存对Provider对象的引用)。如果不重用映射器,则每次都需要创建新的序列化器和反序列化器:由于涉及内省和注释处理的数量,这些都是昂贵的操作。

您正在运行的平台是什么,也许是移动设备?在我3岁以上的笔记本电脑上创建一个实例只需不到半秒钟。

如果性能受到关注并且您的JSON不是太复杂,请考虑使用Jackson的流API(这是Jackson的真正力量)自己解析JSON数据,它会快一个数量级。