有没有办法根据需要借用硬盘内存?

时间:2012-12-31 01:26:07

标签: python memory computer-science

这可能是一个愚蠢的问题但是,例如,如果我正在处理在我的2GB计算机上占用2.1 GB RAM的非常大的阵列,是否有办法借用额外的根据需要从我的硬盘驱动器获得0.1GB?

3 个答案:

答案 0 :(得分:2)

您的操作系统已经这样做了(Windows,* nix)。它被称为Virtual Memory

答案 1 :(得分:0)

是。它是virtual memory的一部分,特别是交换。大多数现代操作系统都是这样做的,而程序员不必担心它。

当物理RAM耗尽时,硬盘将用作额外内存。这非常慢,因为硬盘的访问时间(毫秒)比DRAM(纳秒)的访问时间慢了一百万倍。

如果可能的话,建议增加你的RAM。

答案 2 :(得分:0)

正如其他人所说,系统已有虚拟内存。

但是你可以用另一种方式利用这一点。您可以使用memory mapped files来允许系统直接将阵列映射到磁盘。

在写入内存(数组)时以这种方式使用它,系统将使用它的虚拟内存管理系统来使用磁盘。您可能会问这与操作系统的标准VMM有何不同?好处是它不会使用标准交换空间(Windows中的页面文件),因此空间是“内存”可供系统的其余部分使用。

您的资源使用率仍然很高,但您可以通过释放交换空间来获得更多虚拟内存。您获得的其他优点是没有重复的数据。即。如果您正在加载大型数据集,那么您只需将磁盘空间映射到内存,反之亦然。