在python 2.7中创建文档术语矩阵时,np数组的内存错误

时间:2017-01-19 18:47:39

标签: python

我正在使用java.sql.connection.isValid()制作DTM。但有时它会在此行遇到内存错误问题。我怎样才能防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是32位python。 32位python将程序ram内存限制为2 GB(所有32位程序都将此作为硬限制),其中一些由python开销占用,更多的是由程序占用。普通的python对象不需要连续的内存,而是映射不同的内存区域

numpy.arrays需要连续内存分配,分配起来要困难得多。 aditionally np.array(a) + 1创建第二个数组,并且必须再次分配一个巨大的连续块(​​实际上是大多数操作)。

想到一些可能的解决方案

  1. 使用64位python ...这将为你提供更大规模的ram ...你将不太可能遇到内存错误,除非你有一个非常非常大的数组(以至于那么多numpy可能不是正确的解决方案)
  2. 使用多处理来创建一个新的进程,其新的2gb限制只能处理numpy处理内容
  3. 使用与numpy不同的解决方案(即数据库)