在Haskell中将10 GB向量保存到磁盘的最佳方法

jap*_*jap 12 haskell

我有一个10GB Data.Vector.Unboxed向量,我想有效地保存到磁盘.什么是最好,最有效的方式?我打算从内存映射文件中读取它.

我已经看过这个包这个包但只适用于Storable,但我需要保持unboxed.

我在考虑转换到列表,但我认为这不是很理想.

aco*_*mar 5

您可以在O(n)遍历整个向量的过程中转换Vector类型.你正在寻找的功能是convert.只要您不打算经常将此向量写入磁盘,这个成本就不应该超过所有,并且肯定比实际将向量写入磁盘更快.但是,如果您发现自己经常支付此费用,则应该重新考虑该算法.


Pet*_*lák 4

我自己还没有测试过,但您可以尝试使用vector-binary-instances,它Binary为 s 提供实例Vector,然后使用binary,例如encodeFile