首页 > TAG信息列表 > memory-mapped-files

Java FileChannel的内存版本

我正在对正在使用的库进行一些更改.为了减少内存使用,库正在将其临时数据写入磁盘,而不是将其保留在内存中.但是,对于我的使用情况,将其保留在内存中效率更高.它还有一些并发问题,因为它的临时文件名是常量,因此不能在不同的线程中同时运行(因为这些线程会破坏彼此的数据). 因此,我

C#-MemoryMappedFile.CreateOrOpen引发句柄无效

我有创建内存映射文件的代码,如下所示: using (Mutex mutex = new Mutex(false, CoordinatorMutexName)) { mutex.WaitOne(); var security = new MemoryMappedFileSecurity(); security.SetAccessRule( new AccessRule<MemoryMappedFileRights>(

CodeGo.net>使用内存映射视图查看大的位图图像

我有一个非常大的位图,正在尝试使用C#应用程序进行查看. 这里的主要问题是我无法将其直接加载到内存中,因此我尝试使用内存映射视图库按照Reference One、Reference Two、Reference Three、Reference Four和Reference Five的指南进行加载. 我到现在为止的内容如下: 根据需要读取部分

python – 是否可以np.concatenate内存映射文件?

我用np.save()保存了几个numpy数组,并且放在一起它们非常庞大. 是否有可能将它们全部作为内存映射文件加载,然后连接并切换所有这些文件而不将任何内容加载到内存中?解决方法:使用numpy.concatenate显然将数组加载到内存中.为避免这种情况,您可以在新文件中轻松创建第三个memmap数组

c – 将boost :: iostreams :: mapped_file_source与std :: multimap一起使用

我有相当多的数据要分析 – 每个文件大约5gig.每个文件都具有以下格式: xxxxx yyyyy 键和值都可以重复,但键按递增顺序排序.我正在尝试使用内存映射文件来实现此目的,然后找到所需的密钥并使用它们.这就是我写的: if (data_file != "") { clock_start = clock(); data_fil

将互斥锁放在C/C++中的窗口上的内存映射文件中

Windows是否提供可以放置在内存映射文件中并在多个进程中使用的任何类型的互斥锁? 理想情况下,它必须完全自包含,以便它可以在文件中自行存活,即使在重新启动时也是如此. 此外,如果我只是在没有进程运行的情况下手动删除文件,则不应泄漏任何资源. 如果可能,解决方案还应提供附带的“

linux – 使用mmap和大页面随机读取大文件

我正在使用mmap来读取一个大型数据库文件(例如,100GB),索引保存在主内存中(键偏移对). 由于默认的4KB虚拟内存页面大小,我假设文件系统上的读取调用也将使用4KB的块.但是,对于我的应用程序的访问模式来说,这是非常低效的.因此,我正在调查使用大页面透明地将I / O单元的大小从4KB增

c# – 内存映射文件:CreateViewAccessor上的IOException用于大数据

我正在使用内存映射文件的托管包装器处理大型和不断增长的文件:MemoryMappedFile,MemoryMappedViewAccessor. 我使用以下代码创建空文件: long length = 1024L * 1024L * 1L; // 1MB // create blank file of desired size (nice and quick!) FileStream fs = new FileStream(filen

java – MappedByteBuffer.asFloatBuffer()与内存中的float []性能

假设您正在对一大组大型浮点矢量进行一些计算,例如:计算每个的平均值: public static float avg(float[] data, int offset, int length) { float sum = 0; for (int i = offset; i < offset + length; i++) { sum += data[i]; } return sum / length; } 如果您将所有

c# – 是否可以避免序列化/反序列化并与内存映射文件(MMF)共享大内存对象?

我需要将C#内存对象从一个进程传递到另一个进程(IPC) 我刚刚尝试在文件中序列化此对象,然后在我的第二个进程中使用二进制序列化(BinaryFormatter)对其进行反序列化,以获得良好的性能. 不幸的是,性能达不到我的预期. 由于我的对象有很多信息,序列化和反序列化需要花费太多时间(我的

c – 为什么在此示例中remap_file_pages()失败?

以下C代码说明了我在Linux 2.6.30.5-43.fc11.x86_64上看到的问题: #include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.

linux – mmap如何提高文件读取速度?

假设地址空间可以覆盖文件,在我看来mmap只是分配一块与要读取的文件一样大的内存块,并在它们相应的块之间创建一对一的关系.但是,为什么这样做会加快文件读取速度?似乎为了实际获取文件的内容,您仍然必须转到磁盘,并读取它上面的所有字节. 与malloc相同大小的内存并手动将整个文件读

linux – 写入内存映射文件后更新mtime的内容是什么?

我在Linux上使用XFS并且有一个内存映射文件,我每秒写一次.我注意到文件mtime(由watch ls –full-time显示)会定期更改但不规则. mtimes之间的差距似乎在2到20秒之间,但并不一致.在系统上运行的其他东西很少 – 特别是我的文件只有一个程序,还有一个读数. 同一个程序更频繁地写入其