Excel 2010 如何使用 RAM?

Excel 2010 如何使用 RAM?

使用 32 位 Excel 2010,我只有 2G RAM 可用,即使我的电脑上有 16G 可用。

我的问题是:

如果我打开第二个 Excel 实例(不是第二个工作簿,而是重新打开整个程序),它们是否各自使用 2G RAM,还是共享 2G RAM?

答案1

在 32 位 Windows 上,进程可以使用的 2 GB 不是“RAM”。它是虚拟地址空间,只是上限;大多数程序的大多数实例只会使用其中的一小部分。

但是,每个处于自己进程中的 Excel 实例(如 Win7 上任务管理器的“进程”列和 Win10 上的“详细信息”中所示)都可以使用取决于2 GB 的虚拟地址空间。

如果你在同一个 Excel.exe 进程中打开多个电子表格,那么这些电子表格不是单独的实例,然后所有工作都在同一个进程地址空间(最大 2 GB 虚拟空间)内完成。

虚拟地址空间与 RAM 的关系非常“软”。创建一个进程 - 就像在 32 位 Windows 上运行的所有进程一样,可能使用最多 2 GB 的 VAS(但大多数不会) - 本质上不使用任何特定数量的 RAM,除了用于管理进程的不可分页内核数据结构的少量(不到一兆字节)之外。

RAM 是按需分配给进程的。通常,进程的虚拟地址空间中只有大约十分之一到四分之一(同样,不是每个 2 GB;它将是进程代码和数据所需的任何空间)会占用 RAM。占用多少取决于它正在主动访问的 vas 数量以及可用的 RAM 数量。可用的 RAM 越多,每个繁忙进程可以使用的 RAM 就越多 - 也就是说,每个进程的虚拟地址空间在任何时候“驻留”在 RAM 中的空间就越多。进程和 Windows 本身的 RAM 使用情况在很大程度上取决于环境:机器有多少 RAM,以及其他进程有多忙。

与 Windows 上的其他所有可执行文件一样,如果您运行一个进程的多个实例,则每个实例已载入 RAM 的代码部分将可供其他实例访问。因此,虽然每个实例都位于自己的虚拟地址空间中,但它们不会为其代码占用多组 RAM;代码在 RAM 中共享。另一方面,每个实例特有的数据会分别占用每个进程的虚拟地址空间和 RAM。

如果它是一个“大地址感知”的 32 位应用程序并在 64 位 Windows 上运行,则上面描述的虚拟地址空间的“2 GB”限制可以是 4 GB。

相关内容