首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >低内存开销XML解析

低内存开销XML解析
EN

Stack Overflow用户
提问于 2013-02-01 09:16:40
回答 1查看 425关注 0票数 1

简介:

我正在开发一个web应用程序(Grails),并且有一个XML操作(上传和导入>20 my文件),它占用了大量的内存,在我的生产环境中导致了OutOfMemoryExceptions。

因此,我想比较XMLSlurper/XMLParser/XmlTwig的内存消耗(老实说,我懒得为DOM编写SAX解析器)。

我想知道的是:

我不知道如何在非生产性环境(普通groovy而不是grails环境)中开始一些批处理执行。--我想测试不同的实现几次,测量内存消耗(可能还有cpu时间),并显示平均值。如何设置我的生产环境的内存设置(-XX:MaxPermSize,.,在Tomcat上)也很重要,更改它也很好。

有谁知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-01 13:22:56

这是一个很难直接回答的问题。但现在我..。

使用DOM解析器或类似于Groovy的XMLSlurper的URL应该可以完成这个任务(或者将文件上传到服务器,然后使用XMLSlurper)。每当您处理大型文件时,您确实希望避免将整个文件加载到内存中,然后再对其进行处理,看起来您似乎明白了为什么会这样。对每个实现进行比较似乎是过火了,所以只需选择一个您信任的、不会预先将所有内容加载到内存中的实现即可。

另外,关于tomcat的jvm设置,您应该使用您可以使用的硬件.在合理的范围内;)在java环境中尤其如此,在这种环境中,需要更多的内存才能有效地操作,从而使设置最大化(-Xmx2048m、-Xms2048m、-XX:MaxPermSize=256m)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14642998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档