2013-05-30 17 views
7

我的理解是ByteString s只是Word8 s的向量列表。這種封裝在二進制流上提供了更好的內存和速度性能。類似地,Text類型可以提高Char流的性能。是否有懶惰`ByteString`的參數版本?

但是如果我有Int流或Double流呢?是否有易於在不同數據類型中使用的參數版本ByteString?我認爲這隻適用於不可裝箱的類型。

回答

12

Vector是嚴格數組的前提選擇。 StorableVector試圖成爲一個更類似ByteString的界面,包括懶惰,分塊的行爲,我相信甚至寫成ByteString代碼的擴展:http://hackage.haskell.org/package/storablevector

+1

此外,許多人使用懶惰的字節串和反序列化來獲取'Int's或'Double'的lasy流。 –

1

如果您只希望「嚴格」版本使用vector這是平臺的一部分。 Vector具有非盒裝和(完全通用)盒裝變體。矢量還包括積極的高品質流融合。

+3

我想懶惰的版本。具體來說,我希望能夠以幾千兆字節的「Double」訪問數據結構,而無需將它們全部加載到內存中。 –