我們正在讀取大量文件到memorystream中,並在代碼中的多個位置重複使用它們。 想知道獲取文件的byte []是否是一個更好的主意,並將它們存儲在散列表中用於這種情況。這樣我們就可以在完成時關閉內存流,並在需要時從哈希表中重新創建一個。只是想知道這種方法是否有任何缺點。 感謝 ň散列表中的Cache byte []與MemoryStreams
0
A
回答
1
使用byte[]
而不是MemoryStream
的一個優點是MemoryStream
有更多的狀態 - 它有一個遊標。特別是,兩個線程可以很容易地從相同的字節數組中讀取(複製他們感興趣的部分等),而如果他們試圖同時使用Stream.Read
,他們可能不會獲得預期的結果。
這兩個不利的一面是,他們可變:(
0
,如果有這種方法什麼缺點只是想知道。
對於巨大文件? 「巨大」有多大?你可以使用多少內存?
+0
現在我們處理100 MB,200 MB。 – 2010-02-11 12:16:13
0
如果文件是真的那麼大,那麼你最好不要讓他們在內存中的首位。相反,你應該在需要時讀取它們,以減少內存使用量。
相關問題
- 1. C#散列表與C++散列表
- 2. C#GZipStream - 壓縮MemoryStreams
- 3. 列表的byte []的一個大的byte []
- 4. Java SHA-1散列無符號BYTE
- 5. 獲取的byte []從列表<Byte>
- 6. UpdateModel與字典/散列表
- 7. 散列與四郎
- 8. 隊列<byte>與流
- 9. C++中的散列表?
- 10. 散列表中的鏈接列表
- 11. 散列表與arraylist並創建新的陣列列表
- 12. 在java1.4中模擬列表<byte[]>
- 13. Java - 如何遍歷散列表列表的散列圖
- 14. WCF Cache與Page.Cache
- 15. C + + 17中的std :: byte與C#中的byte相當嗎?
- 16. Perl正則表達式散列與/ e
- 17. TCP服務器和MemoryStreams/ByteArrays
- 18. vb.net中的雙散列表或雙散列hashtable
- 19. 散列散列的紅寶石散列
- 20. 創建您自己的散列表和散列表
- 21. Spring Cache - 無法獲取數據列表
- 22. 從Java中的散列表填充JTable
- 23. 修復散列中的散列位置
- 24. 數組中的雙散列表示
- 25. 散列表的數組/列表?
- 26. 散列表同步
- 27. indexFor在散列表?
- 28. 瞭解散列表
- 29. XML到散列表
- 30. 在RMS列中寫入byte []
是否有任何優勢從byte []轉換爲base64string並緩存它,而不是字節[]。 – 2010-02-11 12:50:29
@np:我猜的是不可變性,但這是我能想到的。如果你想避免stompage,最好緩存字節數組並給拷貝給調用者。 – 2010-02-11 13:44:11