我正在处理一个巨大的数据集,我想知道 Ubuntu 32 位和 64 位版本有多少虚拟内存可用。
谢谢
答案1
有限的 RAM 问题是影响所有操作系统的问题。RAM 的理论限制是由地址限制引起的。对于 32 位技术,有效限制约为 3.4 GB。
目前,64 位系统的 RAM 不受此数量的限制,但更多的是受限于缺乏构建具有如此多 RAM 的机器的可能性。维基百科说,限制是 16 EB。
希望这有帮助。
答案2
由于您的 PC 安装了 16 GiB 的 RAM,因此在 32 位内核上运行的单个 32 位应用程序可以使用略大于 3 GiB 的内存(而不是 4 GiB,因为它必须与 Linux 内核共享一部分内存)。
64 位内核上的 64 位应用程序将具有更高的“可用”地址空间,这实质上受到过度提交配置的限制。
如果您打算真正使用大量已分配的页面,则需要确保这些页面由 RAM 或交换区域支持。例如,如果您已将交换分区配置为 16 GiB,则您将无法访问超过 32 GiB 减去内核和其他正在运行的应用程序已保留的内存量。
这个限制有一个例外。如果你使用只读或共享内存映射文件,就不需要将它们的内容分页到交换区域,因此它们的大小将添加到程序的可用地址空间中。
就您而言,我建议您使用内存映射文件来加载并处理 RGB 图像。但请注意,如果您的工作内存集明显超出 RAM 大小,则由于内存抖动,性能将严重下降。