Win32/MFC:如何找到可用的空闲内存(RAM)?

use*_*438 0 memory windows winapi mfc

任何建议/提示/链接/教程将不胜感激!:)

Jer*_*fin 9

对此真的没有答案.在正常情况下,操作系统将保持东西基本上所有系统上的内存.基本上,一旦它将内容读入内存,它就会在内存中保留它的副本,直到其他东西需要内存,因此第一个内存被踢出.有许多函数可以为您提供有关内存的信息,但是它们都没有尝试真正返回完全未使用的内存量.我所知道的最接近的是GlobalMemoryStatusEx,它确实返回一个可用内存量的数字.

这意味着当前内存中的任何内存当前都在内存磁盘上,因此内存中的副本可以丢弃,而不必先将其写入磁盘.例如,如果你运行一个程序,大多数代码将保留在内存中(直到其他东西需要内存),以防你决定再次运行它.因为它只是磁盘上程序的副本,所以它可以被丢弃,并且(如果需要)在需要时从磁盘重新加载.

如果你想要更多的细节,你可以使用类似的东西VirtualQueryEx来获取它 - 但它通常会让你重复信息,告诉你在给定过程中使用的每个内存块,而不是给出一个很好的,简单的数字,说"x字节免费".