出于调试目的,我希望在我的python脚本中看到每个活变量的大致内存大小,因为变量的大小正在快速增长(或者多个变量被创建但没有被破坏)。
当使用的内存增长6GB时,这是Guppy-PE(总变量大小约为54MB)的输出。
Partition of a set of 370715 objects. Total size = 54137008 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 151088 41 16953320 31 16953320 31 str
1 91788 25 8121344 15 25074664 46 tuple
2 16472 4 4979464 9 30054128 56 unicode
3 4699 1 3118216 6 33172344 61 dict (no owner)
4 895 0 3100648 6 36272992 67 dict of module
5 23616 6 3022848 6 39295840 73 types.CodeType
6 23707 6 2844840 5 42140680 78 function
7 2412 1 2303520 4 44444200 82 dict of type
8 2412 1 2178768 4 46622968 86 type
9 12733 3 1805096 3 48428064 89 list
<925 more rows. Type e.g. '_.more' to view.>
我怀疑使用外部库(libmagickwand-dev
)的库(Wand)。但是我不知道我的代码在什么级别发生这种情况。
有没有更好的方法来调试这类问题?
我可以在htop
中看到那些6GB但在Guppy-PE
中没有: