Java 用Jackson从POJO到JSON太慢了

Java 用Jackson从POJO到JSON太慢了,java,json,rest,jackson,Java,Json,Rest,Jackson,我通过jackson和rest向客户机发送了很多复杂的java对象,但是将这些对象写成JSON需要6秒左右的时间,这太长了!我有大约200个对象,它们的结构如下: public class LotListMV implements Serializable { private static final long serialVersionUID = -1296813516060999040L; Map<String, GroupingMissionMV> lotLis

我通过jackson和rest向客户机发送了很多复杂的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;

   ...
}
公共类LotListMV实现可序列化{
私有静态最终长serialVersionUID=-1296813516060999040L;
地图列表;
字符串货币;
...
}
公共类GroupingMissionMV实现可序列化{
私有静态最终长serialVersionUID=-343336819042189462L;
私人名单特派员;
私家车;
私有字符串statusImgColor;
...
}

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

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


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

也许您可以发送大约200个请求和响应,而不是对一个请求发送巨大的响应。这仍然需要很长时间,但是客户端可以更快地接收和显示前几个响应。