8得票2回答
使用内存映射文件在C++中解析二进制文件速度过慢

我正在尝试整数方式解析二进制文件以检查整数值是否满足某个条件,但循环非常缓慢。 此外,我发现内存映射文件是将文件快速读入内存的最快方法,因此我正在使用以下基于Boost的代码: unsigned long long int get_file_size(const char *file_pat...

9得票2回答
内存映射随着时间的推移变慢,有替代方法吗?

我在磁盘上存储了约700个矩阵,每个矩阵大约有70k行和300列。我需要相对快速地加载这些矩阵的部分数据,每个矩阵中大约1k行,加载到我在内存中的另一个矩阵中。我发现使用内存映射的方式是最快的方法,最初我可以在约0.02秒内加载1k行数据。然而,性能并不稳定,有时候,加载每个矩阵需要长达1秒的...

7得票3回答
Java NIO - 内存映射文件

我最近看到了这篇文章,很好地介绍了内存映射文件及其如何在两个进程之间共享。下面是读取文件的进程代码: import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import j...

19得票3回答
.NET 4.0 内存映射文件性能

我想知道是否有人尝试过新的.NET 4.0内存映射文件功能?我知道它们与操作系统一样古老,但在.NET中的本地处理是新的。 有人能够测试并就性能发表意见吗?我对二进制文件随机部分的访问时间、写入速度等非常感兴趣。同时,与本地WinAPI MMF的性能比较也很好。 谢谢!

13得票3回答
如何在内存映射文件中进行并行处理数据

作为一个内存映射文件的名称表明,我理解使用C#中的MemoryMappedFile类可以将大文件的一部分映射到内存中以进行快速数据处理。我想要做的是并行处理内存映射文件。为了达到这个目的,我有以下问题: MemoryMappedFileViewAccessor是否线程安全和Parallel...

7得票3回答
我正在尝试在一个boost内存映射文件中创建一个具有向量值的C++映射。

这是我用来测试的代码: 这是我用来测试的代码: #include <iostream> #include <boost/interprocess/managed_mapped_file.hpp> #include <boost/container/map.hp...

14得票8回答
如何在磁盘上扫描超大型文件?

考虑到磁盘上可能有一个非常大的文件(可能超过4GB),我想扫描该文件并计算特定二进制模式出现的次数。 我的想法是: 使用内存映射文件(CreateFileMap或boost mapped_file)将文件加载到虚拟内存中。 对于每个100MB映射内存,创建一个线程来扫描和计算结果。 ...

8得票2回答
使用File::Map如何正确地向文件写入数据?

我经常使用File::Map将特别小的文本文件映射到内存中,并且例如对其执行一些只读正则表达式处理。现在我有一个用例需要替换文件中的一些文本,因此认为我仍然可以使用File::Map,因为它记录了以下内容: 文件被映射到一个变量中,可以像任何其他变量一样进行读取,可以使用标准Perl技术(...

14得票1回答
扩展Java内存映射字节缓冲区

有没有办法扩展Java内存映射的字节缓冲区,使新的大小反映到磁盘上映射的文件中?

11得票1回答
Java - 堆内存 vs 直接内存访问

我最近发现了sun.misc.Unsafe类,允许用户以类似于C语言的方式分配、释放和访问内存。我阅读了几篇博客来解决这个问题,例如: Java堆还是直接内存更快 - 测试结果声称堆更快 Off-heap 内存 vs DirectByteBuffer vs Heap - Off-heap ...