24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1329  |  回复: 6

冰域逐梦

银虫 (初入文坛)

[求助] dom4j如何处理700M大小的xml文件

dom4j如何处理700M大小的xml文件,从pubmed上下载的XML文件,想把摘要部分提出来,但是程序运行之后内存就会溢出,用小一点的测试数据程序是可以正常运行的,求高手指点
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

冰域逐梦
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youxikun

银虫 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 欢迎常来程序语言看看 2012-05-02 06:42:10
没搞过这么大的文件,仅仅提供个想法。
修改dom4j源码,分段读取文件或者用内存映射。
不知道可行不
2楼2012-05-02 00:46:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sein_tao

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
调一下JVM的内存大小试试看。
很大的文件的话还是自己按流的方式去处理吧。不要一次读到内存中。
3楼2012-05-06 00:01:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sein_tao

金虫 (小有名气)

【答案】应助回帖


xzhdty: 金币+1, 欢迎常来 2012-05-06 06:42:59
4楼2012-05-06 00:09:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wizardfan

至尊木虫 (著名写手)

优秀版主

【答案】应助回帖

1. java -Xms1024m -Xmx1024m AppName 把内存设置搞大点就行了。
2. 还有如果有些object不用了的话, 设为null,并运行gc()
3. 用基于jaxb的类库,那个对内存要求很小
5楼2012-07-13 03:14:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

笨猫的项圈

新虫 (初入文坛)

XML的解析方式:
 1.DOM(Document Object Model 文档对象模型)
 关键字:树(Document)
 优点: 把xml文件在内存中构造树形结构,可以遍历和修改节点
 缺点: 如果文件比较大,内存有压力,解析的时间会比较长
2. SAX(Simple API for Xml 基于XML的简单API)
 关键字:流(Stream)
 把xml文件作为输入流,触发标记开始,内容开始,标记结束等动作
 优点: 解析可以立即开始,速度快,没有内存压力
 缺点: 不能对节点做修改
后者触发式解析是不是符合你的要求?
6楼2012-08-13 11:47:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

uniqak47

铜虫 (初入文坛)

【答案】应助回帖

5楼正解。
SAX适合对大型xml等结构化文件进行操作,自己做好标记控制就行,不需要在内存中构造全部树结构
好好学英语
7楼2012-10-30 09:15:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 冰域逐梦 的主题更新
信息提示
请填处理意见