簡體   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