0

我对虚拟内存有疑问。首先,我想提一下我是编程领域的新手。我已经阅读了视觉记忆。

现在我有一个程序可以打开需要大量内存的软件(例如图片查看器)。但是,相关计算机无法为此腾出那么多内存。而这一切都是用 Visual C++ 完成的。图片查看器当前在物理内存上运行。

但是一旦这个软件被分发出去,它就会被用在那些不能节省那么多物理内存的计算机上。所以我的任务是研究并找出如何将这个程序从使用物理内存切换到虚拟内存。最后我可能会自己实现这个。

所以我的问题是,如何更改代码以防止应用程序使用物理内存,而是切换到虚拟内存?

我当然不是要求有人为我提供复制粘贴代码,而只是一种方法。另外,如果有人可以解释其背后的逻辑,我将不胜感激。

提前致谢。

4

2 回答 2

1

操作系统负责决定哪些应该存储在 RAM 中,哪些应该分页到 VM。在某些异常情况下,可以从您的应用程序向操作系统提供建议可能很有用,但这仅建议专家使用。作为一个新手,你最好的选择是相信操作系统会做正确的事情。

为什么你认为你需要特殊的行为呢?无论如何,图片通常很小。除非您的应用程序处理成千上万,否则它们将适合 RAM。

于 2013-04-18T06:28:30.697 回答
0

不使用一些物理内存就不能使用虚拟内存。名称swapfile是有原因的。处理器不能直接对二级存储(如硬盘)中的数据进行操作。它必须首先将其复制到 RAM 中。

于 2013-04-18T06:33:45.973 回答