小编mar*_*hiz的帖子

Jackson JSON Parser表现

互联网上的多个帖子指向杰克逊,因为它具有比GSON更好的解析性能,在接近20-30%的速度提升的地方.

拉出我们的GSON解析器并替换为Jackson导致我的项目减速7倍,每次调用的延迟超过300毫秒.GSON上的相同解析工作不到50毫秒.

我浏览了杰克逊维基上的"陷阱"清单,但没有任何东西像红旗那样突出.

例如,我没有重新创建我的ObjectMapper,我正在使用ObjectReader读取所有JSON.以下是一些示例代码:

public class JsonParser {
    @Nonnull
    private final ObjectMapper objectMapper;

    public JsonParser() {
        final ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setDateFormat(DateFormatUtil.getGmtIso8601DateFormat());

        SimpleModule simpleModule = new SimpleModule();
        objectMapper.registerModule(simpleModule);
        this.objectMapper = objectMapper;
    }

    public <T> T fromJson(InputStream inputStream, Class<T> clazz) throws IOException {
        ObjectReader reader = objectMapper.reader(clazz);
        return reader.readValue(inputStream);
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的对象被创建一次,并在应用程序的持续时间内用于将JSON转换为POJO.这里可以看到样本POJO:

@JsonSerialize(include= Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ActivityEntity {
    public ActivityObjectEntity actor;
    public ActivityObjectEntity object;
    public ActivityObjectEntity provider;
    public ActivityObjectEntity …
Run Code Online (Sandbox Code Playgroud)

performance android json jackson gson

7
推荐指数
1
解决办法
3868
查看次数

标签 统计

android ×1

gson ×1

jackson ×1

json ×1

performance ×1