跳转到主要内容

Guppy 3 -- 将Guppy-PE移植到Python 3

项目描述

Guppy 3

Build Status Codecov PyPI version Repology - Repositories PyPI - Downloads
PyPI - Implementation PyPI - Python Version PyPI - License Contributions Welcome

一个Python编程环境及堆分析工具集。

本包包含以下子包

  • etc - 支持模块。特别包含Glue协议模块。
  • gsl - Guppy规范语言实现。这可以用于从通用源创建文档和测试。
  • heapy - 堆分析工具集。它可以用来查找堆中对象的信息,并以各种方式显示信息。
  • sets - C实现位集合和'nodesets'。

Guppy 3是Sverker Nilsson为Python 2创建的Guppy-PE的分支。

需求

您应具备Python 3.8、3.9、3.10、3.11或3.12。此包仅适用于CPython;PyPy和其他Python实现不受支持。可以从Sverker Nilsson的guppy-pe获得Python 2支持,该包是从该包派生的。

要使用图形浏览器,需要Tkinter。要使用远程监控,必须可用线程。

安装

通过pip安装

pip install guppy3

通过conda安装

conda install -c conda-forge guppy3

用法

以下示例显示

  1. 如何创建会话上下文:h=hpy()
  2. 如何显示堆中的可访问对象:h.heap()
  3. 如何显示从根到单个最大对象的最近路径:h.heap().byid[0].sp
  4. 如何创建和显示一组对象: h.iso(1,[],{})
>>> from guppy import hpy; h=hpy()
>>> h.heap()
Partition of a set of 30976 objects. Total size = 3544220 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0   8292  27   739022  21    739022  21 str
     1   7834  25   625624  18   1364646  39 tuple
     2   2079   7   300624   8   1665270  47 types.CodeType
     3    400   1   297088   8   1962358  55 type
     4   4168  13   279278   8   2241636  63 bytes
     5   1869   6   269136   8   2510772  71 function
     6    400   1   228464   6   2739236  77 dict of type
     7     79   0   139704   4   2878940  81 dict of module
     8   1061   3    93368   3   2972308  84 types.WrapperDescriptorType
     9    172   1    81712   2   3054020  86 dict (no owner)
<89 more rows. Type e.g. '_.more' to view.>
>>> h.heap().byid[0].sp
 0: h.Root.i0_modules['os'].__dict__
>>> h.iso(1,[],{})
Partition of a set of 3 objects. Total size = 348 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0      1  33      248  71       248  71 dict (no owner)
     1      1  33       72  21       320  92 list
     2      1  33       28   8       348 100 int
>>>

人们已经写了一些很棒的文章,介绍了如何使用这个工具集,包括

正式和API文档也可用在此

贡献

欢迎提出问题和拉取请求。您也可以请求帮助使用这个工具集;然而,在这种情况下,我们只会提供指导,而不会为您分析代码。

请确保适当地更新测试。

测试

为了测试heapy构建和安装是否正常,您可以执行以下操作

>>> from guppy import hpy
>>> hpy().test()
Testing sets
Test #0
Test #1
Test #2
...

还将有更多的测试。一些测试可能需要一些时间。

许可

版权(C)2005-2013 Sverker Nilsson,S. Nilsson Computer System AB
版权(C)2019-2021 YiFei Zhu
版权(C)2021-2023 YiFei Zhu,Google LLC

根据通常所说的MIT许可证规则,允许复制、使用、修改和重新分发此代码的权利。

这不是一个官方的Google产品。

*** 自行承担风险,并请注意这是早期版本 ***

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码发行版

guppy3-3.1.4.post1.tar.gz (344.1 kB 查看哈希值)

上传时间

构建版本

guppy3-3.1.4.post1-cp312-cp312-win_arm64.whl (341.2 kB 查看哈希值)

上传时间 CPython 3.12 Windows ARM64

guppy3-3.1.4.post1-cp312-cp312-win_amd64.whl (351.8 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

guppy3-3.1.4.post1-cp312-cp312-win32.whl (339.3 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

guppy3-3.1.4.post1-cp312-cp312-musllinux_1_1_x86_64.whl (720.5 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ x86-64

guppy3-3.1.4.post1-cp312-cp312-musllinux_1_1_s390x.whl (726.8 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ s390x

guppy3-3.1.4.post1-cp312-cp312-musllinux_1_1_ppc64le.whl (745.1 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ ppc64le

guppy3-3.1.4.post1-cp312-cp312-musllinux_1_1_i686.whl (694.2 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ i686

guppy3-3.1.4.post1-cp312-cp312-musllinux_1_1_aarch64.whl (719.7 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ ARM64

guppy3-3.1.4.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (714.8 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

guppy3-3.1.4.post1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (721.4 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ s390x

guppy3-3.1.4.post1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (739.6 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ppc64le

guppy3-3.1.4.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (713.4 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

guppy3-3.1.4.post1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (688.9 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

guppy3-3.1.4.post1-cp312-cp312-macosx_11_0_arm64.whl (362.9 kB 查看哈希)

上传于 CPython 3.12 macOS 11.0+ ARM64

guppy3-3.1.4.post1-cp312-cp312-macosx_10_9_x86_64.whl (363.8 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ x86-64

guppy3-3.1.4.post1-cp312-cp312-macosx_10_9_universal2.whl (458.2 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

guppy3-3.1.4.post1-cp311-cp311-win_arm64.whl (340.6 kB 查看哈希)

上传于 CPython 3.11 Windows ARM64

guppy3-3.1.4.post1-cp311-cp311-win_amd64.whl (351.1 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

guppy3-3.1.4.post1-cp311-cp311-win32.whl (338.4 kB 查看哈希)

上传于 CPython 3.11 Windows x86

guppy3-3.1.4.post1-cp311-cp311-musllinux_1_1_x86_64.whl (679.9 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ x86-64

guppy3-3.1.4.post1-cp311-cp311-musllinux_1_1_s390x.whl (688.9 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ s390x

guppy3-3.1.4.post1-cp311-cp311-musllinux_1_1_ppc64le.whl (708.5 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ ppc64le

guppy3-3.1.4.post1-cp311-cp311-musllinux_1_1_i686.whl (659.1 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ i686

guppy3-3.1.4.post1-cp311-cp311-musllinux_1_1_aarch64.whl (682.4 kB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ ARM64

guppy3-3.1.4.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (675.0 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

guppy3-3.1.4.post1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (684.4 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ s390x

guppy3-3.1.4.post1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (705.4 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ppc64le

guppy3-3.1.4.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (676.5 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

guppy3-3.1.4.post1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (654.4 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

guppy3-3.1.4.post1-cp311-cp311-macosx_11_0_arm64.whl (362.5 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

guppy3-3.1.4.post1-cp311-cp311-macosx_10_9_x86_64.whl (363.2 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

guppy3-3.1.4.post1-cp311-cp311-macosx_10_9_universal2.whl (457.3 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

guppy3-3.1.4.post1-cp310-cp310-win_arm64.whl (340.4 kB 查看哈希值)

上传时间 CPython 3.10 Windows ARM64

guppy3-3.1.4.post1-cp310-cp310-win_amd64.whl (350.7 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

guppy3-3.1.4.post1-cp310-cp310-win32.whl (338.1 kB 查看哈希)

上传于 CPython 3.10 Windows x86

guppy3-3.1.4.post1-cp310-cp310-musllinux_1_1_x86_64.whl (651.2 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

guppy3-3.1.4.post1-cp310-cp310-musllinux_1_1_s390x.whl (660.3 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ s390x

guppy3-3.1.4.post1-cp310-cp310-musllinux_1_1_ppc64le.whl (679.8 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ ppc64le

guppy3-3.1.4.post1-cp310-cp310-musllinux_1_1_i686.whl (630.3 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ i686

guppy3-3.1.4.post1-cp310-cp310-musllinux_1_1_aarch64.whl (652.9 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ ARM64

guppy3-3.1.4.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (645.4 kB 查看哈希)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

guppy3-3.1.4.post1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (654.2 kB 查看哈希)

上传于 CPython 3.10 manylinux: glibc 2.17+ s390x

guppy3-3.1.4.post1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (676.3 kB 查看哈希)

上传于 CPython 3.10 manylinux: glibc 2.17+ ppc64le

guppy3-3.1.4.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (646.6 kB 查看哈希)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

guppy3-3.1.4.post1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (624.9 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

guppy3-3.1.4.post1-cp310-cp310-macosx_11_0_arm64.whl (362.3 kB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ ARM64

guppy3-3.1.4.post1-cp310-cp310-macosx_10_9_x86_64.whl (363.1 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ x86-64

guppy3-3.1.4.post1-cp310-cp310-macosx_10_9_universal2.whl (457.0 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

guppy3-3.1.4.post1-cp39-cp39-win_arm64.whl (340.4 kB 查看哈希值)

上传时间 CPython 3.9 Windows ARM64

guppy3-3.1.4.post1-cp39-cp39-win_amd64.whl (351.2 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

guppy3-3.1.4.post1-cp39-cp39-win32.whl (338.1 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86

guppy3-3.1.4.post1-cp39-cp39-musllinux_1_1_x86_64.whl (640.9 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ x86-64

guppy3-3.1.4.post1-cp39-cp39-musllinux_1_1_s390x.whl (649.5 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ s390x

guppy3-3.1.4.post1-cp39-cp39-musllinux_1_1_ppc64le.whl (668.9 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ ppc64le

guppy3-3.1.4.post1-cp39-cp39-musllinux_1_1_i686.whl (619.3 kB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ i686

guppy3-3.1.4.post1-cp39-cp39-musllinux_1_1_aarch64.whl (641.6 kB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ ARM64

guppy3-3.1.4.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (635.2 kB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

guppy3-3.1.4.post1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (643.7 kB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ s390x

guppy3-3.1.4.post1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (665.1 kB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ ppc64le

guppy3-3.1.4.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.3 kB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ ARM64

guppy3-3.1.4.post1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (615.1 kB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

guppy3-3.1.4.post1-cp39-cp39-macosx_11_0_arm64.whl (362.3 kB 查看哈希值)

上传时间: CPython 3.9 macOS 11.0+ ARM64

guppy3-3.1.4.post1-cp39-cp39-macosx_10_9_x86_64.whl (363.1 kB 查看哈希值)

上传时间: CPython 3.9 macOS 10.9+ x86-64

guppy3-3.1.4.post1-cp39-cp39-macosx_10_9_universal2.whl (456.9 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

guppy3-3.1.4.post1-cp38-cp38-win_amd64.whl (352.5 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

guppy3-3.1.4.post1-cp38-cp38-win32.whl (339.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

guppy3-3.1.4.post1-cp38-cp38-musllinux_1_1_x86_64.whl (658.7 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

guppy3-3.1.4.post1-cp38-cp38-musllinux_1_1_s390x.whl (667.3 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ s390x

guppy3-3.1.4.post1-cp38-cp38-musllinux_1_1_ppc64le.whl (686.6 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ ppc64le

guppy3-3.1.4.post1-cp38-cp38-musllinux_1_1_i686.whl (636.8 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ i686

guppy3-3.1.4.post1-cp38-cp38-musllinux_1_1_aarch64.whl (659.4 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ ARM64

guppy3-3.1.4.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (649.2 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

guppy3-3.1.4.post1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (656.8 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ s390x

guppy3-3.1.4.post1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (679.0 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ppc64le

guppy3-3.1.4.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (648.6 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ARM64

guppy3-3.1.4.post1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (628.7 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

guppy3-3.1.4.post1-cp38-cp38-macosx_11_0_arm64.whl (364.2 kB 查看哈希值)

上传时间 CPython 3.8 macOS 11.0+ ARM64

guppy3-3.1.4.post1-cp38-cp38-macosx_10_9_x86_64.whl (365.1 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

guppy3-3.1.4.post1-cp38-cp38-macosx_10_9_universal2.whl (461.0 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面