3

我正在创建一个程序,它将在 RAM 中分配大量数据。现在,如果 RAM 空间不足,程序将被放入虚拟内存并发生分页交换。这是非常缓慢的。是否可以检查 RAM 的剩余空间?是否可以检查系统现在是否正在使用虚拟内存?

这是在 Windows 上的 C++ 上。

4

2 回答 2

5

您可以使用GlobalMemoryStatusEx函数来获取可用 RAM 的数量。要在 RAM 用完时收到通知,可以使用QueryMemoryResourceNotification方法。

于 2011-01-17T16:03:11.257 回答
1

仅仅拥有大量可用内存并不意味着 Windows 不会分页您的程序。您可以尝试 GetCurrentProcess 的 SetProcessWorkingSetSize api,但它不提供保证,您可以使用 VirtualLock 来保证它,但您可能会降低性能。

于 2011-01-17T16:23:28.080 回答