XStream使用,对象创建的实现

团队用XStream实现序列化、反序列化的方案,完成服务之间的接口报文object与xml之间转化,但是过程中发现接口调用有越来越慢的情况,大家相互一顿嫌弃彼此的代码写的烂偷笑,然后开始分析问题——到底是调用越来越慢还是接口服务本身就变慢,发现两种情况均有出现,后来发现有一个子系统的接口服务没有发生变化,看了下代码发现序列化方案用的dom4j(丫的,不按套路出牌啊惊讶)...... 初步判断是xstream问题。然后开始本地模拟调用,观察VisualVm,发现ygc会变大,分析XStream的源码,XStream在new的时候会创建CompositeClassLoader(初始类加载器),并且不断new会不断创建,导致ygc需要扫描的内容越来越多,最终导致接口调用性能下降。

接口调用实例化xstream创建如下:

            XStream xstream = new XStream();
            //根据传入的dto name进行xml转换
            xstream.processAnnotations(reqObjName);
            String xmlStr = xstream.toXML(reqObject);
            
            xmlStr = XmlConverUtil.getValueByKey(xml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值