我需要在文件中存儲具有80,000項的布爾數組。我不在乎節省多少時間,我只關心數組的加載時間。 我沒有嘗試通過DataOutputStream存儲它,因爲它需要訪問每個值。Java存儲文件中的布爾數組並快速讀取
我試圖3種的方法,例如,使這個:
- 連載布爾數組使用位集合的
- 代替布爾陣列的序列化
- 轉印布爾數組成字節數組,其中1是true和0是錯誤的適當,並寫入FileChannel使用ByteBuffer
要測試從這些方法的文件讀取,我已經在循環中運行每個方法1000次。所以,我的結果看起來是這樣的:
- 反序列化布爾數組的需要574毫秒
- 反序列化位集合的 - 379毫秒
- 通過MappedByteBuffer獲取字節數組從FileChannel - 170毫秒
第一種和第二種方法太長,第三種方法可能根本沒有辦法。
或許有實現它最好的辦法,所以我需要你的意見
編輯
每種方法都跑了一次
- 13.8
- 8.71
- 6.46 ms專用
您如何衡量這些數據的執行結果? –
在一個循環中加載相同的文件1000次並不會給你真正意義上的每個迭代需要多長時間 - 第一個將會慢得多,並且之後文件系統緩存將會啓動。 –
@Luiggi我已經運行了每個循環他們有1000次循環,需要時間通過System.currentTimeMills()或System.nanoTime() –