有大文件。我需要快速排序。我将按部分处理适合 RAM 的文件,以避免/度使用页面文件(下一步:合并部分)。如何使用最大内存?
我的解决方案:使用 WinApi 文件内存映射,但我不知道如何获取文件最大大小的一部分,但适合 RAM(如何确定大小)?
有大文件。我需要快速排序。我将按部分处理适合 RAM 的文件,以避免/度使用页面文件(下一步:合并部分)。如何使用最大内存?
我的解决方案:使用 WinApi 文件内存映射,但我不知道如何获取文件最大大小的一部分,但适合 RAM(如何确定大小)?
您可以对要处理的页面进行虚拟锁定。它将物理内存锁定为您需要的大小(如果有足够的大小),将其他内存交换到页面文件。
您可以使用GlobalMemoryStatusEx函数来确定您的应用程序可以分配多少内存,而不会严重影响其他应用程序。
因此,您可以映射文件并锁定要处理的页面。