这是一个数据传输程序,将数据传输到另一个节点服务器上,
约定的交互数据包为xml格式,xml格式比较复杂,但主要分2部分
1.数据包描述
2.数据包内容
其中数据包内容为CDATA,里面还是一个xml包
每天传输大约是5000个包左右,
使用的是dom4j来进行xml的生成和解析,目前的方式是每个包过来我都new 一个 新的 Document,然后进行打包或者解析,
但发现Document这个对象是个很大的对象,怕这样是否会影响性能,或时间长造成内存不足,如果对原有的Document进行缓存,那么就要进行节点的更新和删除,
这样程序又复杂了,而且性能行不行也不知道,请大家帮忙分析下
第1次做java程序,对java不熟悉,帮忙看看
------最佳解决方案--------------------------------------------------------
Document对像你肯定是可以只声明一次, 这样相对应的内存地址只保留一份
但每次Document对像使用完之后, 调用下 Document.clearContent() 方法
声明部分
SAXReader reader = new SAXReader();
Document doc = null;
给Document对像赋值
doc = reader.read(new ByteArrayInputStream(xml.getBytes()));
使用完成后
doc.clearContent();
------其他解决方案--------------------------------------------------------
包很多的话可以不用dom方式解析 转而使用流的方式
可将数据存至数据库方便更新和删除工作
------其他解决方案--------------------------------------------------------
w360188606 ,用流的方式可能不行,因为已经定下来是xml数据包方式通讯,不可能进行更改。
现在只考虑的效率问题,而且数据本来就在数据库中,只是从数据库取出,打成包发给另1个服务器而已。
每天数据量大概40万左右,数据包内容进行了压缩和编码
------其他解决方案--------------------------------------------------------
明白了,谢谢shaot399
也感谢w360188606