2017-04-13 78 views
0

我使用的一些代码创建的矩阵大于RAM。我的第一个想法是通过修改当前的矩阵来使用pytables来使用pytables。但是编码会很痛苦(我使用的代码是开源的,通过跟踪矩阵的每一次使用和其他相关的编码原因,进行修改是一个真正的痛苦)。但是做了一些小小的研究,我发现那些说python实际上使用虚拟内存的材料。所以如果我有一个非常大的虚拟内存,比如1TB,那么我的程序就不用担心会出现“内存不足错误”。顺便说一下,我使用的是Ubuntu。我的担心是,使用非常大的虚拟内存来解决我的问题比使用pytables慢?我正在使用python2.7Pytables vs虚拟内存

回答

0

操作系统实现虚拟内存。虚拟内存系统上的所有内容都使用虚拟内存。

虚拟内存可以让你的程序不是可用,但有限制访问更多的物理内存:

  1. 进程的虚拟地址范围
  2. 系统参数
  3. 过程配额
  4. 页面文件空间

对于足够大的矩阵,您可以超出任何这些矩阵。

+0

user3344003感谢您的回答,它给了我一些见解。但是你的回答并没有解决关于性能问题的虚拟内存和pytables的比较。 – eddys

+0

如果您的操作系统使用虚拟内存,您将获得虚拟内存。这不是你打开和关闭的东西。 – user3344003

+0

user3344003,好的,让我再说一遍。出于性能原因,哪一个是可取的。 (1)使用100GB的RAM增加虚拟内存到1TB或(2)使用100GB虚拟内存和RAM 100GB,但现在使用pytables?你看,如果我们有1TB的虚拟内存,我们不需要使用pytables。 – eddys