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++源代 ...
随机推荐
- LVS的DR模式测试案例<仅个人记录>
初始概念 大家都知道LVS,是章文嵩博士创建的,所以首先推一下主站吧!http://zh.linuxvirtualserver.org/ LVS集群分为三层结构: 负载调度器(load balance ...
- java Quartz任务调度器
1.quarz对java1.5实现的简单调度做了封装 /** * quartz对任务调度进了高度抽象: 1调度器:2任务:3触发器 * Job接口(任务):定义需要调度的任务 ...
- JS獲取URL的參數
function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...
- 从零开始学java (五)接口与内部类
接口,是描述类具有什么样的功能,而不是给出每个功能的实现.一个类可以implements多个接口...接口中可以含有 变量和方法.但是要注意, 接口中的变量会被隐式地指定为public static ...
- 从Excel表中导入数据时日期格式的验证问题解决
#region IsDateTimeType 私有方法判断导入数据是否是日期格式 /// <summary> /// 私有方法判断导入数据是否是日期格式 /// </summary& ...
- (26)A delightful way to teach kids about computers
https://www.ted.com/talks/linda_liukas_a_delightful_way_to_teach_kids_about_computers/transcript00:1 ...
- Maven学习笔记2(坐标和依赖)
1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</grou ...
- <c:forEach>循环列表,获取勾选的checkbox中某个<td>的值
<table> <!--列表表头 开始 --> <tr> <th><input type="checkbox" name=&q ...
- shell传递参数
简单介绍python的脚本传参 我们知道python脚本传递参数,有一个很方便的方式-sys.argv.它将脚本本身名字和后面的各项参数都放入一个列表. 使用的时候,索引这个列表就可以了.例如: py ...
- Python开发——8.模块
一.模块 1.模块 (1)定义:一个.py文件就是一个模块 (2)原因:为了防止程序代码越来越长,对函数进行分组放到不同的文件夹里. (3)优点:提高代码的可维护性:模块编写完毕可以被别人引用,也可以 ...