7得票2回答
Java的FileChannel的内存版本

我正在修改一个使用的库。为了减少内存使用,该库将其临时数据写入磁盘而不是保留在内存中。但是,在我的使用场景中,将其保留在内存中更有效。它还存在一些并发问题,因为它具有临时文件的恒定名称,因此无法在不同线程中同时运行(因为线程会破坏彼此的数据)。 因此,我需要更改库使其全部数据保留在内存中。我...

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

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

14得票1回答
监控Windows内存映射文件

在Windows中,我该如何跟踪由CreateFileMapping()创建的文件映射对象?基本上,我想知道有多少内存映射文件正在使用以及它们的名称、大小等信息。谢谢!

22得票5回答
如何在.NET中快速从内存映射文件中读取字节?

在某些情况下,MemoryMappedViewAccessor 类并不能高效地读取字节;我们最好得到的是通用的 ReadArray<byte>,对于所有结构都是相同的路线,当你只需要字节时就涉及多个不必要的步骤。 虽然可以使用 MemoryMappedViewStream,但由于...

7得票2回答
关于Linux中匿名映射内存的问题

我正在考虑使用虚拟内存系统来实现透明的数据转换(例如将int转换为float)以处理一些数字数据。我的基本想法是,我编写的库可以将您需要的数据文件映射到内存中,同时映射一个大小合适的匿名区域来保存转换后的数据,并将指针返回给用户。 匿名区域是可读/可写保护的,因此每当用户通过指针访问数据时,...

26得票7回答
在Java中,多个线程是否可以看到对直接映射ByteBuffer的写入?

我正在处理使用内存映射文件(通过FileChannel.map())构建的ByteBuffers以及内存中的直接ByteBuffers相关的内容。我试图理解并发性和内存模型的限制。 我已经阅读了所有相关的Javadoc(和源代码),例如FileChannel、ByteBuffer、Mappe...

8得票1回答
Mac OS是否有创建匿名文件映射的方法?

在UNIX世界中,创建一个由RAM或页面文件支持而不是磁盘文件的文件映射对象的标准方法是调用shm_open。这将创建一个带名称的内存映射,并返回一个文件句柄,您可以将其传递给mmap。 问题在于它会创建一个名称。如果我能创建一个匿名内存映射就好了。这将解决两个问题: 1. 它将避免同一程...

10得票1回答
内存映射文件的性能特征

背景: 我有一个Java应用程序,在大型内存映射文件(>500MB)上进行密集的IO操作。该程序读取数据,写入数据,有时同时进行读写操作。 所有读/写功能具有类似的计算复杂度。 我对程序的IO层进行了基准测试,并注意到了内存映射文件的奇怪性能特征: ...

21得票2回答
内存映射的MappedByteBuffer还是直接的ByteBuffer用于数据库实现?

这看起来像是一个很长的问题,因为有很多背景信息。下面的小说中有两个问题。感谢您花时间阅读并提供帮助。 情况 我正在开发一个可扩展的数据存储实现,可以在32位或64位系统上处理从几KB到TB甚至更大的数据文件。 数据存储使用了写时复制的设计;始终将新的或修改过的数据追加到数据文件的末尾,而...

14得票5回答
Win32内存映射文件的性能与CRT fopen/fread相比如何?

我需要按顺序读取(扫描)文件并处理其内容。文件的大小可以是从几KB到几GB的任何值。 我尝试了两种在Windows 7 64位上使用VC10/VS2010的技术: Win32内存映射文件(例如CreateFile、CreateFileMapping、MapViewOfFile等) CRT...