我正在解析大型的xhtml文件,並試圖在其中播放內容。基本上它的話,他們的立場等我嘗試使用HashMap,ArayList等所有他們在加載130347數據後給OutOfMemory問題。什麼是可用於在JAVA中保存大量數據的數據結構。我應該使用什麼樣的數據結構來處理大數據
回答
你的問題很模糊。但是,如果內存不足,則應該使用磁盤上的數據庫。 PostgreSQL,MySQL,HSQLDB等等。
您的意思是說我從文檔中收集的信息可以寫入到本地磁盤上具有適當數據結構的hsqldb中,而不是加載到內存中,以便可以根據需要查詢我需要的信息。因爲我只需要它的請求,在處理結束時我必須刪除我的插入是嗎?這非常有趣。我沒有爲實時應用程序應用hsqldb解決方案。您能否告訴我我需要爲這種類似性能的解決方案所做的折衷,因爲我將不得不插入大量的數據,從而造成大量的調用? – Rachel 2010-05-06 16:28:30
您建議使用哪個數據庫來暫時加載數據,並在請求結束時清除它們。 – Rachel 2010-05-06 16:42:29
一個10MB的XML文件絕不是「龐大的數據」,因此磁盤數據庫可能是矯枉過正的。 – intgr 2010-05-15 17:01:45
現在你在做什麼,將所有數據吸收到一個巨大的結構中然後處理它,不管你使用什麼數據結構都不會工作。在閱讀一些數據,然後處理它,然後再閱讀一些數據等方面嘗試一種增量方法(實際上,你將以這種方式創建自己的專用數據結構來處理區塊處理,所以我的第一個句子不是真的準確。)
這樣做的一種方法可能是使用SAX解析文檔,SAX使用事件驅動的方法。您可以讓您的內容處理程序通過讀取xml元素來創建和存儲您構建的對象,一旦積累足夠的內容就可以處理它們,然後清除該集合。
查看虛擬機的內存設置。您可以通過命令行修改虛擬機內存大小(如果這是您的位置),或者如果您處於某種服務器端環境,則可以通過配置文件修改虛擬機內存大小。
如果您使用的是Tomcat /月食,這個線程可以幫助你: Eclipse memory settings when getting "Java Heap Space" and "Out of Memory"
- 1. 我應該使用什麼樣的數據結構?
- 2. 我應該使用哪種數據結構來處理多值數據?
- 3. 我應該使用什麼樣的數據結構來存儲文件庫..?
- 4. 我應該用什麼java數據結構來排序這些數據?
- 5. 我應該在什麼數據結構中組織數據?
- 6. ,我應該在C++中使用這個什麼樣的數據結構的
- 7. 我應該使用什麼樣的數據模型來存儲歷史數據?
- 8. 我應該使用什麼數據結構?
- 9. 我應該使用什麼樣的Android結構來填充ListFragment
- 10. 什麼樣的數據結構可以實現並行處理
- 11. 我應該使用什麼類型的數據結構來保存錶行?
- 12. 什麼數據結構應該用於分層數據?
- 13. 我應該使用什麼數據結構來存儲.fasta頭文件集合?
- 14. 我應該使用哪些結構化數據對象來處理.txt中的數據?
- 15. 我應該使用什麼數據庫來存儲大量可能較大的嵌套散列結構?
- 16. 用於處理大量數據的庫/數據結構
- 17. 我應該使用什麼樣的數據庫系統?
- 18. 這是什麼樣的數據結構?
- 19. 我們應該使用什麼樣的數據結構來創建Google地圖等地圖?
- 20. 我應該用什麼數據結構來跟蹤依賴關係?
- 21. 個人malloc函數,使用數據結構來處理內存
- 22. 我應該使用什麼xPath來顯示請求的數據?
- 23. 數據結構,我應該選擇哪一個,爲什麼
- 24. 大型數據結構操作/處理中的內存使用
- 25. 應該使用什麼模型/模式來處理多個數據源?
- 26. 我應該導入什麼來使用jquery數據表?
- 27. Python數據類型,它是什麼樣的數據結構?
- 28. 我應該使用什麼數據類型來存儲文本數據?
- 29. 我應該爲這個定價表使用什麼數據結構
- 30. 我應該使用什麼類型的數據庫模式來存儲和使用地理位置數據?
我不認爲這是數據類型的問題,我認爲你試圖做的「一次太多」。如果您處理的數據量足夠大,導致內存問題,那麼您可能需要拆分步驟並以大塊方式進行。 – 2010-05-05 18:30:30
你的xhtml文件有多大? – 2010-05-05 18:56:41
我遇到了一個5MB文件的問題。我打算支持高達10MB的文件。 – Rachel 2010-05-06 16:19:13