问题描述
我想知道我的Python应用程序的内存使用情况,特别是想知道哪些代码块/部分或对象消耗了最多的内存.Google搜索显示商用的是 Python内存验证程序(仅Windows). >
我没有尝试过任何人,所以我想知道哪一个是最好的考虑因素:
-
提供大多数详细信息.
-
我不必对我的代码做最少的改动,也可以不做任何改动.
Heapy 很简单使用.在代码中的某些时候,您必须编写以下代码:
from guppy import hpy
h = hpy()
print h.heap()
这会为您提供如下输出:
Partition of a set of 132527 objects. Total size = 8301532 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 35144 27 2140412 26 2140412 26 str
1 38397 29 1309020 16 3449432 42 tuple
2 530 0 739856 9 4189288 50 dict (no owner)
您还可以从哪里找到对象的引用,并获取有关该对象的统计信息,但是在某种程度上,有关该文档的文档很少.
还有一个用Tk编写的图形浏览器.
I want to know the memory usage of my Python application and specifically want to know what code blocks/portions or objects are consuming most memory.Google search shows a commercial one is Python Memory Validator (Windows only).
And open source ones are PySizer and Heapy.
I haven't tried anyone, so I wanted to know which one is the best considering:
Gives most details.
I have to do least or no changes to my code.
Heapy is quite simple to use. At some point in your code, you have to write the following:
from guppy import hpy
h = hpy()
print h.heap()
This gives you some output like this:
Partition of a set of 132527 objects. Total size = 8301532 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 35144 27 2140412 26 2140412 26 str
1 38397 29 1309020 16 3449432 42 tuple
2 530 0 739856 9 4189288 50 dict (no owner)
You can also find out from where objects are referenced and get statistics about that, but somehow the docs on that are a bit sparse.
There is a graphical browser as well, written in Tk.
这篇关于建议使用哪个Python内存分析器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!