这是一个数据传输程序,将数据传输到另一个节点服务器上,
约定的交互数据包为xml格式,xml格式比较复杂,但主要分2部分1.数据包描述
2.数据包内容
其中数据包内容为CDATA,里面还是一个xml包
每天传输大约是5000个包左右,使用的是dom4j来进行xml的生成和解析,目前的方式是每个包过来我都new 一个 新的 Document,然后进行打包或者解析,
但发现Document这个对象是个很大的对象,怕这样是否会影响性能,或时间长造成内存不足,如果对原有的Document进行缓存,那么就要进行节点的更新和删除,
这样程序又复杂了,而且性能行不行也不知道,请大家帮忙分析下
第1次做java程序,对java不熟悉,帮忙看看

解决方案 »

  1.   

    包很多的话可以不用dom方式解析 转而使用流的方式
    可将数据存至数据库方便更新和删除工作
      

  2.   

    w360188606 ,用流的方式可能不行,因为已经定下来是xml数据包方式通讯,不可能进行更改。
    现在只考虑的效率问题,而且数据本来就在数据库中,只是从数据库取出,打成包发给另1个服务器而已。每天数据量大概40万左右,数据包内容进行了压缩和编码
      

  3.   

    Document对像你肯定是可以只声明一次, 这样相对应的内存地址只保留一份
    但每次Document对像使用完之后, 调用下 Document.clearContent() 方法声明部分SAXReader reader = new SAXReader();
    Document doc = null;
    给Document对像赋值doc = reader.read(new ByteArrayInputStream(xml.getBytes()));
    使用完成后doc.clearContent();
      

  4.   

    明白了,谢谢shaot399
    也感谢w360188606