首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1GB向量,Vector.Unboxed会给麻烦,Vector.Storable会给麻烦吗?

1GB向量,Vector.Unboxed会给麻烦,Vector.Storable会给麻烦吗?
EN

Stack Overflow用户
提问于 2015-05-04 19:10:14
回答 1查看 144关注 0票数 9

我们需要在内存中长时间存储1GB的连续字节(从几周到几个月),并且尝试选择向量/数组库。我有两个担心,我找不到答案。

  1. Vector.Unboxed似乎将底层字节存储在堆中,GC可以随意移动这些字节.定期移动1GB的数据是我想避免的事情。
  2. Vector.Storable通过将底层字节存储在c堆中解决了这个问题。但我所读到的一切似乎都表明,这实际上只用于与其他语言(主要是c)的交流。我是否有理由避免在内部Haskell中使用Vector.Storable。

如果有意义的话,我愿意接受第三种选择!

EN

回答 1

Stack Overflow用户

发布于 2015-05-05 10:24:03

我的第一个想法是 package,它允许您使用虚拟内存系统管理分页,将文件“内存映射”到内存中。我不知道这是否适合您的用例(特别是,我不知道您是在加载还是计算这1GB的数据),但它可能值得一看。

特别是,我认为这会阻止GC移动数据(因为它不在Haskell堆上,而是由OS虚拟内存子系统管理)。另一方面,这个接口只处理原始字节;比方说,您不可能有一个Customer对象数组或其他东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30038084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档