本文介绍了建议使用哪个Python内存分析器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道我的Python应用程序的内存使用情况,特别是想知道哪些代码块/部分或对象消耗了最多的内存.Google搜索显示商用的是 Python内存验证程序(仅Windows). >

开放源代码是 PySizer .

我没有尝试过任何人,所以我想知道哪一个是最好的考虑因素:

  1. 提供大多数详细信息.

  2. 我不必对我的代码做最少的改动,也可以不做任何改动.

解决方案

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:

  1. Gives most details.

  2. 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内存分析器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-27 06:27