作者mysmppt (小桑)
看板java
標題[問題] 存大筆資料時(存0,1,2),資料型態選擇
時間Sat Jan 28 20:24:30 2012
各位前輩好~
小弟的目的是要降低對I/O頻繁的讀取負擔,
所以把檔案中存的資料全部讀進記憶體以備讀取,
讀進來後會有 (1024*1024) x 190 = 199229440筆資料,
打算以陣列來儲存,而每一筆資料內存的是 0或1或2 ,
若使用boolean陣列則不足以表示0或1或2,
若使用short陣列的話,則該陣列大小也有380MB,
請問這樣的話是否能有把資料讀進記憶體時更節省記憶體空間、
在讀取時又好處理的方法呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.56.149
1F:→ gwokae:硬要塞進記憶體的話,想到兩個方法笨方法是宣告布林陣列 01/28 20:53
2F:→ gwokae:然後自己判斷false=0 true=1 null=2這樣... 01/28 20:56
3F:→ stimim:用 short array + 3進位 ? 01/28 21:01
4F:→ stimim:不然至少還有 byte array 可以用 01/28 21:03
6F:→ tkcn:有現成的 BitSet 01/28 23:34
7F:推 LaPass:BitSet啊.... 知道了個好東西呢 01/29 00:59
8F:→ jej:有進就有出..看看你的輸出的需求..如果沒有急迫性.. 01/29 06:09
9F:→ jej:分段讀出去~~ 01/29 06:13
10F:推 PsMonkey:囧... 還真的什麼 class 都有 XD 01/29 09:53
11F:推 ClareQ:BitSet只能存0,1吧?原PO的需求應該要客製化資料結構 01/29 13:01
12F:推 ClareQ:不過我比較好奇甚麼需求要用三元狀態? 未來有可能變更多嗎? 01/29 13:15
13F:→ mysmppt:謝謝各位前輩的建議,現在需求改成只要0或1,可以用布林了 02/16 02:49
14F:→ mysmppt:之前的需求是需要存測試結果,有1有0,也有隨機0或1的結果 02/16 02:52