首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Python2.7.6的Windows上的Guppy/Heapy

带有Python2.7.6的Windows上的Guppy/Heapy
EN

Stack Overflow用户
提问于 2014-09-26 12:50:53
回答 1查看 2.5K关注 0票数 5

我刚投了0.1.10。然后在Ipython 2.1.0中输入

代码语言:javascript
复制
from guppy import hpy
hp = hpy()

使控制台崩溃,即windows告诉我,python.exe刚刚崩溃。有什么解决办法吗?还是其他的选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 09:45:07

我和格皮/海皮也有过同样的问题。格皮现在有点过时了。有某种补丁,但我再也找不到了。然而,在python2.7中,它并不适用于我。您也可以有问题,因为操作系统的arch (64位!?)。

还有关于内存分析技术的其他问题:

我个人认为最有价值的选择是:

计算对象的大小并自己跟踪它也很有用。我详细阐述了一些代码(最初是由https://stackoverflow.com/users/216356/noctis-skytower编写的),我在其中一个StackOverflow问题(Approximately how much memory would a list of 80000 items consume in python?)中发现这些代码与Python2.7兼容(应该在3中也适用):

代码语言:javascript
复制
totalSizeOf = lambda obj: sum(map(sys.getsizeof, explore(obj, set())))
def explore(obj, memo):
    loc = id(obj)
    if loc not in memo:
        memo.add(loc)
        yield obj
        # Handle instances with slots.
        try:
            slots = obj.__slots__
        except AttributeError:
            pass
        else:
            for name in slots:
                try:
                    attr = getattr(obj, name)
                except AttributeError:
                    pass
                else:
                    #yield from explore(attr, memo)
                    for bar in explore(attr, memo):
                        yield bar
        # Handle instances with dict.
        try:
            attrs = obj.__dict__
        except AttributeError:
            pass
        else:
            #yield from explore(attrs, memo)
            for bar in explore(attrs, memo):
                yield bar
        # Handle dicts or iterables.
        for name in 'keys', 'values', '__iter__':
            try:
                attr = getattr(obj, name)
            except AttributeError:
                pass
            else:
                for item in attr():
                    #yield from explore(item, memo)
                    for bar in explore(item, memo):
                        yield bar
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26060045

复制
相关文章

相似问题

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