与杰克逊的POJO到JSON太慢

时间:2016-10-20 09:56:01

标签: java json rest jackson

我通过jackson将很多复杂的java对象发送到客户端,但是将对象写为JSON需要大约6秒,这太长了!我有大约200个对象,其结构如下:

public class LotListMV implements Serializable {

   private static final long serialVersionUID = -1296813516060999040L;

   Map<String, GroupingMissionMV> lotList;

   String currency;
   ...
}


public class GroupingMissionMV implements Serializable {

   private static final long serialVersionUID = -343336819042189462L;

   private List<MissionMV> missionMVList;

   private int statusNiveau;

   private String statusImgColor;

   ...
}

我不想粘贴MissionMV的代码,因为它有点大,但它有50个属性和3个非常小的对象。客户端的响应为17 kb,如gzip。我听说杰克逊很快,所以我真的不明白它为什么这么慢。我在mappr.writeValueAsString(myObject)之前和之后放了一个记录器,以确保这就是问题所在。

1 个答案:

答案 0 :(得分:0)

这不是足够的信息,特别是不清楚JSON处理花费的时间。例如,你提到了gzip,解压缩gzip编码的内容比解析JSON要花费更长的时间。你确定不花时间吗?还不清楚您是否可以及时计算通过HTTP接收内容所需的时间;或者,如果您已经测量了稳态性能(在Java中,对任何代码的第一次调用比进一步使用要慢得多)。 简而言之,您不清楚为什么认为JSON解析部分很慢;也不可能评估(未提及内容大小)。

如果你想知道JSON解析的性能,你必须通过读取内存(已经下载的内容)来测试它;或者,至少缓冲来自网络的内容,分别测量不同的部分。