我正在努力最大限度地提高程序的速度(以便实时获得结果)并避免从硬盘驱动器加载不必要的数据。
程序应该处理大量图像,我想在 RAM 中处理尽可能多的处理数据。但我发现malloc
即使我有 8GB 的 RAM(Windows 7 64 位),分配的内存也不会超过 2GB。
如何让我的程序使用尽可能多的 RAM?
我正在努力最大限度地提高程序的速度(以便实时获得结果)并避免从硬盘驱动器加载不必要的数据。
程序应该处理大量图像,我想在 RAM 中处理尽可能多的处理数据。但我发现malloc
即使我有 8GB 的 RAM(Windows 7 64 位),分配的内存也不会超过 2GB。
如何让我的程序使用尽可能多的 RAM?
我相信windows相当于mmap(2)
是VirtualAlloc
这应该允许您使用更多的内存。请记住,操作系统可能仍会决定调出您的内存。您可以使用 将其锁定在 RAM 中VirtualLock
。但是,可锁定内存的数量可能会受到限制。
同样如评论中所述,请确保将您的程序编译为 64 位。