我有一個尺寸爲20,000,000 * 3的矩陣存儲在一個文件中。我想非常快速地訪問它。我該怎麼做? 我無法申報那麼大的地圖。我該怎麼辦? 請幫忙。java中的巨大矩陣
回答
有許多的可能性:
如果矩陣是稀疏的,將其加載到地圖,留出在哪裏值爲零的條目。
如果矩陣的文件版本具有固定大小的記錄,則創建一個內存映射緩衝區並使用索引來訪問單個單元。
如果訪問模式是連續的,那麼只需讀取它。
等等。
如果你想要一個更具體的答案,你需要提供更多的細節;例如該文件是如何表示的,是矩陣稀疏,什麼是訪問模式,你需要更新矩陣等
矩陣不是稀疏。它基本上包含3行,所有整數。矩陣以格式
<row1>
<row2>
row3>
存儲在文本文件中。我不需要更新它;我只需要對第1行的值執行一些搜索。
好的。
將文件轉換爲二進制格式。這將使每行佔用相同的字節數並使隨機訪問成爲可能。
搜索
row1
中的值表明您需要對文件中的列進行排序,以便在row1
上對行進行排序。 (或者,如果您還需要按原始行號查找行,請在第1列上創建一個索引。)然後使用
MappedByteBuffer
將已排序/索引/轉換的文件映射到內存中,並通過一個IntBuffer
。
映射文件的總大小應該在180Mb的區域內,這在現今典型的PC上應該不會有問題。
矩陣不是稀疏的,它基本上包含在存儲在文本文件3行,所有ints.Matrix格式爲
我寧願用Map來使用數組,但是這可能太大了。試着找出矩陣的哪些部分將用於計算,查看一些分而治之/並行矩陣算法,這些矩陣算法通常在較小的矩陣中分解矩陣 - 在結構上或使用矩陣乘法,本徵矩陣和矩陣的其他代數性質。你可以做各種事情,如緩衝和緩存等,以加快訪問磁盤上的數據。
- 1. MANOVA - 巨大的矩陣
- 2. 存儲巨大的矩陣
- 3. python中巨大矩陣的矩陣運算
- 4. 巨大矩陣的特徵值
- 5. 代表一個巨大的矩陣/表
- 6. 巨大的python稀疏矩陣
- 7. 矩陣大小Java
- 8. R中的巨大矩陣的重新編碼
- 9. 如何計算巨大元素大小的休矩陣逆?
- 10. 調整Java中的矩陣的大小
- 11. pyplot相關矩陣可視化使用python的巨大矩陣(700×700)
- 12. Django:將巨大的矩陣存儲在表或文件中?
- 13. 如何將巨大的矩陣存儲到數據庫中
- 14. 從巨大的txt中讀取2d矩陣
- 15. 在python中聚集巨大的數據矩陣?
- 16. 矩陣中矩陣最大的方塊
- 17. java中的陣列矩陣
- 18. 很少用巨矩陣計算與用小矩陣進行大量計算
- 19. 準備一個巨大的文本文件的相關矩陣
- 20. 找到一個非常巨大的矩陣的特徵值
- 21. 在大矩陣中找到矩陣
- 22. 創建巨大矩陣的Numpy內存錯誤
- 23. 建立與矢量分量巨大的矩陣在MATLAB
- 24. 繪製巨大的相關矩陣作爲顏色
- 25. 在有條件的巨大矩陣上計數平均值
- 26. 如何計算(1 - SparseMatrix)一個巨大的稀疏矩陣?
- 27. 乘以兩個巨大的矩陣使用numpy.dot
- 28. 如何寫python unittest函數返回巨大的稀疏矩陣
- 29. 如何在內存映射一個巨大的矩陣?
- 30. 任何DBMS都可以發送/接收巨大的矩陣嗎?
當然這是一個稀疏矩陣,對吧? –
取決於矩陣的內容,它是什麼樣的數據? –
http://stackoverflow.com/questions/87679/advice-on-handling-large-data-volumes和http:// stackoverflow的副本。com/questions/140056/java-advice-on-handling-large-data-volumes-part-deux – THelper