Jon*_*off 9 haskell large-files large-scale
我有一个大文件(4 +演出),简单地说,4字节浮点数.我想将它视为List,在某种意义上我希望能够使用map,filter,foldl等.但是,我想将输出写回输入,而不是生成带有输出的新列表.该文件,因此只需要在内存中加载一小部分文件.你可以说我是一个名为MutableFileList的类型
有没有人遇到过这种情况?而不是重新发明轮子我想知道是否有一个Hackish方式来处理这个?
Don*_*art 12
你不应该把它当作内存[Double]或[Float]内存.你可以做的是使用一个类似列表的打包数组类型,比如uvector/vector/...与mmapFile或readFile公司一起拉入文件的块,然后处理它们.或者使用惰性打包数组类型,相当于延迟字节串.
您可以使用mmap将文件映射到内存,然后对其进行处理。有一个mmap 模块承诺读取和写入 mmaped 文件,甚至可以处理延迟映射的文件块,但我还没有尝试过。
用于写入映射文件的接口似乎相当低级别,因此您必须构建自己的抽象或使用Foreign.Ptr等等。