繁体   English   中英

我应该使用什么样的数据结构来处理大量数据

[英]What kind of data structure shall i use for handling huge data

我正在解析巨大的xhtml文件,我正在尝试使用其中的内容。 基本上是它中的单词,它们的位置等我尝试使用HashMap,ArayList等。所有这些都在加载130347数据后给出OutOfMemory问题。 什么是可用于在JAVA中保存大量数据的数据结构。

考虑使用SAX解析器,它的内存密集程度较低。

您现在正在做什么,将所有数据吸收到一个巨大的结构中然后处理它,无论您使用什么数据结构,都无法正常工作。 尝试一种增量方法,在这种方法中,您可以读取一些数据,然后对其进行处理,然后再读取一些数据等。(实际上,您正在这样做的是创建自己的专用数据结构来处理块中的处理,所以我的第一个句子不是很准确。)

一种方法是使用SAX解析文档,SAX使用事件驱动的方法。 您可以让内容处理程序通过读取xml元素来创建和存储您构造的对象,一旦累积就处理它们,然后清除集合。

查看您的虚拟机内存设置。 您可以通过命令行修改VM内存大小(如果您在哪里),或者如果您位于某种服务器端环境中,则可以通过配置文件修改VM内存大小。

如果您正在使用tomcat / eclipse,这个线程应该可以帮助您: 获取“Java Heap Space”和“Out of Memory”时的Eclipse内存设置

你的问题很模糊。 但是如果你的内存不足那么你应该使用磁盘数据库。 PostgreSQL,MySQL,HSQLDB等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM