-
问题描述:
在维护项目代码时,发现有接口响应耗时太长,遂进行优化处理; -
接口逻辑:
1.根据条件在MongoDB中查询数据;
2.遍历数据进行统计、分析;
3.响应请求并做Redis缓存。 -
问题定位:
在对结果数据进行遍历统计、分析时,对JSON数据做了转Javabean的操作,单条数据转换耗时高达18ms,导致响应时间超时; -
问题原因:
在使用JavaBean bean = JSON.parseObject(str,JavaBean.class);
转化Javabean时,
JavaBean
中还存在一个List<OtherBean>
成员变量,其中的OtherBean
也是一个自定义bean,这个是导致耗时长的主要原因。 -
问题总结:
在大批量遍历处理数据时,优先使用JSON格式来处理,对于含有复杂成员变量的Javabean,在转换时需要特别注意。
以上
有不足或者错误的地方,欢迎留言指出。