相关疑难解决方法(0)

Python中的配置文件内存分配(支持Numpy数组)

我有一个包含大量对象的程序,其中许多是Numpy数组.我的程序很糟糕地交换,我正在尝试减少内存使用量,因为它实际上无法在我的系统上使用当前的内存要求.

我正在寻找一个很好的分析器,它可以让我检查各种对象消耗的内存量(我正在设想与cProfile相对应的内存),以便我知道在哪里进行优化.

我听说过关于Heapy的不错的东西,但遗憾的是Heapy不支持Numpy数组,而且我的大多数程序都涉及Numpy数组.

python profile memory-management numpy

27
推荐指数
3
解决办法
3557
查看次数

numpy的内存分析器

我有一个numpy脚本 - 根据top- 使用大约5GB的RAM:

  PID USER   PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16994 aix    25   0 5813m 5.2g 5.1g S  0.0 22.1  52:19.66 ipython
Run Code Online (Sandbox Code Playgroud)

是否有内存分析器可以让我了解占用大部分内存的对象?

我试过了heapy,但是guppy.hpy().heap()给了我这个:

Partition of a set of 90956 objects. Total size = 12511160 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0  42464  47  4853112  39   4853112  39 str
     1  22147  24  1928768  15   6781880  54 tuple
     2 …
Run Code Online (Sandbox Code Playgroud)

python memory numpy memory-profiling

19
推荐指数
1
解决办法
1876
查看次数

为什么numpy数组与列表的比较消耗了如此多的内存?

最近这一点刺痛了我.我通过删除代码中列表的numpy数组的所有比较来解决它.但为什么垃圾收集器会错过收集呢?

运行它,看它吃你的记忆:

import numpy as np
r = np.random.rand(2)   
l = []
while True:
    r == l
Run Code Online (Sandbox Code Playgroud)

在64位Ubuntu 10.04上运行,virtualenv 1.7.2,Python 2.7.3,Numpy 1.6.2

python arrays memory-management numpy list

6
推荐指数
1
解决办法
1612
查看次数

为什么 Pypy 添加 numpy 数组的速度较慢?

为了测试 Pypy JIT 明显更快的说法,我编写了一个简单的代码,该代码重复添加两个大小为 1200x1200 的数组。我的代码如下

import numpy as np
import random

a=np.zeros((1200, 1200), dtype=np.float32)
b=np.zeros((1200, 1200), dtype=np.float32)
import timeit
#Start timer
start=timeit.default_timer()
#Initialize the arrays
for j in range(1200):
    for k in range(1200):
        a[j][k]=random.random()
        b[j][k]=random.random()
#Repeatedly add the arrays    
for j in range(10):
    a=np.add(a,b)
#Stop timer and display the results
stop=timeit.default_timer()
print stop-start
Run Code Online (Sandbox Code Playgroud)

对于普通的 python,执行时间约为 1.2 - 1.5 秒。但是使用 Pypy 它会超过 15 秒吗?同样在上述情况下,我只添加了 10 次数组。如果我将此值增加到 1000,我的计算机将停止响应。我发现这是因为使用 pypy 时几乎消耗了整个 RAM。难道我做错了什么?或者问题是其他的?

python arrays pypy numpy

5
推荐指数
2
解决办法
1903
查看次数