检查 Windows 上 RAM 的剩余空间?

发布于 2024-10-12 03:48:13 字数 138 浏览 5 评论 0原文

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

这是 Windows 上的 C++。

I am creating a program that will allocate a huge amount of data in the RAM. Now, if RAM runs out of space, the program will be put on to virtual memory and paging swap will occur. This is very slow. Is it possible to check for remaining space of RAM? And is it possible to check whether the system is now using virtual memory?

This is on C++ on Windows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我纯我任性 2024-10-19 03:48:13

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

You can use GlobalMemoryStatusEx function to get the amount of free RAM. To get a notification when you are running out of RAM you can use QueryMemoryResourceNotification method.

鲜肉鲜肉永远不皱 2024-10-19 03:48:13

仅仅拥有足够的可用 RAM 并不意味着 Windows 不会对您的程序进行分页。您可以尝试 GetCurrentProcess 的 SetProcessWorkingSetSize api,但它不提供保证,您可以改用 VirtualLock,它应该保证它,但您的性能可能会下降。

Just having the amount of free ram doesn't mean windows will not page your program. You can try the SetProcessWorkingSetSize api for GetCurrentProcess, but it doesn't provide a guarantee, you can instead use VirtualLock which should guarantee it, but you can get degraded perfomance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文