首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cProfile占用大量内存

cProfile占用大量内存
EN

Stack Overflow用户
提问于 2011-03-11 06:28:34
回答 1查看 450关注 0票数 1

我正在尝试用python分析我的项目,但是我的内存快用完了。

我的项目本身是内存密集型的,但在cProfile下运行时,即使是一半大小的运行也会死于"MemoryError“。

进行较小的运行不是一个好的选择,因为我们怀疑运行时是超线性扩展的,并且我们试图发现哪些函数在大运行期间占主导地位。

为什么cProfile占用这么多内存?我能让它花更少的时间吗?这是正常的吗?

EN

回答 1

Stack Overflow用户

发布于 2011-03-11 06:35:49

PythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatePythonUpdatedPythonUpdatePython.PythonUpdatePython.PythonUpdatedPython.PythonUpdatePython.PythonUpdatedPython.PythonUpdatedPythonUpdatedPython.PythonUpdatedPyth如果这对你不起作用,Python2.7.1有一个--with-valgrind编译器选项,可以让它在运行时切换到使用malloc()。这很好,因为它避免了必须使用抑制文件。您可以构建一个仅用于分析的版本,然后在valgrind下运行您的Python应用程序来查看分析器所做的所有分配,以及使用自定义分配方案的任何C扩展。

(原答案的其余部分如下)

也许可以试着看看分配到哪里去了。如果您的代码中有一个地方可以定期转储内存使用情况,则可以使用guppy查看分配情况:

代码语言:javascript
复制
import lxml.html
from guppy import hpy

hp = hpy()
trees = {}
for i in range(10):
    # do something
    trees[i] = lxml.html.fromstring("<html>")
    print hp.heap()

    # examine allocations for specific objects you suspect
    print hp.iso(*trees.values())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5266699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档