Python - 使用objgraph生成对象引用关系图
1- objgraph简介
- HomePage:https://mg.pov.lt/objgraph/
- PyPI:https://pypi.org/project/objgraph/
- 一般用于分析python对象相关问题,列出当前内存中存在的对象,定位内存泄露等;
- 还可以利用graphviz工具生成可视化的对象引用关系图;
2- 安装objgraph
$ pip3 install objgraph --proxy="10.144.1.10:8080"
Collecting objgraph
Downloading https://files.pythonhosted.org/packages/ec/3d/c1f0e827dd2df27c8080317d667cb555d264825d/objgraph-3.4.0-py2.py3-none-any.whl
Collecting graphviz (from objgraph)
Downloading https://files.pythonhosted.org/packages/84/44/21a7fdd50841aaaef224b943f7d10df87e473d48/graphviz-0.8.3-py2.py3-none-any.whl
Installing collected packages: graphviz, objgraph
Successfully installed graphviz-0.8.3 objgraph-3.4.0
- 下载:https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi
- 设置环境变量:Advanced System Settings--》Advanced (tab) ---》Environmental Variables then edit the PATH variable.---》"C:\Program Files (x86)\Graphviz2.38\bin"
3- 运行objgraph
$ ls -l
total 1
-rwxr-xr-x 1 guowli 1049089 143 May 23 16:54 TempTest.py* $ cat TempTest.py
#! python3
# -*- coding: utf-8 -*-
import objgraph x = []
y = [x, [x], dict(x=x)]
objgraph.show_refs([y], filename='sample-graph.png') $ py -3 TempTest.py
Graph written to C:\Users\guowli\AppData\Local\Temp\objgraph-i96a8ww9.dot (4 nodes)
Image generated as sample-graph.png $ ls -l
total 13
-rw-r--r-- 1 guowli 1049089 10398 May 23 16:56 sample-graph.png
-rwxr-xr-x 1 guowli 1049089 143 May 23 16:54 TempTest.py* $
生成对象引用关系图:

4- 在Pycharm运行objgraph
'The command "{}" is required to be in your path.'.format(cmd))
pycallgraph.exceptions.PyCallGraphException: The command "dot" is required to be in your
path.
- Name: PATH
- Value: C:\Program Files (x86)\Graphviz2.38\bin
Python - 使用objgraph生成对象引用关系图的更多相关文章
- hadoop下生成echarts关系图
数据 O700 O2833 O700 O331 O700 O3425 O700 O350 O700 O3516 O700 O3826 读取文件类 public class FileReadFromHd ...
- 使用egypt+graphviz生成函数调用关系图示例
总结: make (-fdump-rtl-expand) 去除编译优化,比如-O3 egypt test.c.128r.expand >test.dot 可以手动打开dot文件去除一些孤立 ...
- 201706 gem 'rails-erd'生成Model关系图
[工具]一张图理清各个model之间关系 安装 Graphviz 2.22+: 终端机中执行 brew install graphviz Gemfile中添加 gem 'rails-erd' 终端机中 ...
- IDEA查看类继承关系及生成类关系图
1.在想要查看的类上按 Ctrl + H -> Diagrams -> Show Diagrams -> Java Class Diagrams -> Show Impleme ...
- 小白学Python(18)——pyecharts 关系图 Graph
Graph-基本示例 import json import os from pyecharts import options as opts from pyecharts.charts import ...
- MySql WorkBench通过表生成表关系图
1.mysql workbench 菜单file=>add model(添加模型) 点击上面的add diagram(添加新的图解),就会在右边多出一个新的图解模型 2,mysql workbe ...
- Ambari服务依赖关系图生成脚本
1. 生成服务依赖关系 #!/usr/bin/python import sys import commands import json def genDependString(ip): url=&q ...
- 使用MySQL Workbench导出MySQL数据库关系图
1. 点击MySQL Workbench中间Data Modeling下的Create EER Model From Existing Database: 2. 在Stored Connection中 ...
- C/C++源代码的Include依赖关系图
前一篇博文中我曾仔细介绍过如何查看C/C++代码的依赖项关系图,在这篇文章中我将会介绍如何使用Visualization and Modeling Feature Pack 工具包,查看C/C++源代 ...
随机推荐
- Pyhon入门基础(1)---Pycharm安装及破解
一.下载安装 1.首先我们可以对比一下社区版和专业版的区别: 2.下载地址:https://www.jetbrains.com/pycharm/download/ 当我们开发的项目比较大的时候通常会涉 ...
- 前端面试之vue相关的面试题
hello,你们的小可爱,皮皮聪又来发表感想了. 首先简单概括下会遇到的问题: 1.vuex作用 ①vuex是一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化. ②vue中的多个组件之间 ...
- Python第十六天 类的实例化
首先 , 先定义一个 简单的 Person 类 class Person: head = 1 ear = 2 def eat(self): print('吃饭') 关于什么是类, 定义类, 类对象,类 ...
- 2018-2019-2 《网络对抗技术》 EXP0 KALI安装 20165213 Week1
kali安装过程 一.从官网下载kail 下载地址为:https://www.kali.org/downloads/ 选择下图中的kali下载 二.用VMware打开虚拟机 打开VMware,点击打开 ...
- [Battle]Battle章1 Presto VS Impala
Round One: 平局:共同点就是吃内存; Round Two: Impala胜 Impala查询性能稍领先于presto Round Three: presto胜 presto在数据源支持上非常 ...
- java中产生HttpServletRequest等作用域
protected ServletContext getServletContext() { return ServletActionContext.getServletContext();} pro ...
- asp.net core web 项目附加进程调试
之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...
- ORA-01017 invalid username/password;logon denied
一般来说这个是密码丢失问题,但也许是因为你的用户名或密码写错啦,所以先检查下用户名和密码,觉得没错的话就去查看 sqlnet.ora (在 安装盘下面的:oracle\product\11.2.0\d ...
- IE兼容问题 动态生成的节点IE浏览器无法触发
ie下click()不能操作文档中没有的节点,所以你可以在click()前添加下面的语句 document.body.appendChild( input ); input.style.display ...
- jQuery事件学习
1.JS事件的基本知识 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...