Python执行程序实可视化_heartrate
最近发现了一个Python程序执行的简单实时可视化神器,名字叫 heartrate,安装完运行可以看到下面这样的炫酷过程。

虽然很炫酷,但有点看不懂。
来解释下,左边的动态数字代表每行被触发的次数。变化的蓝色条形图代表了当时被触发的行,较长的条形图表示被触发次数越多,越签的颜色代表被触发的时间越近。
heartrate 的代码高亮部分主要是依赖了executing库:
https://github.com/alexmojaki/executing
除此外,它还可以显示实时堆栈跟踪,有点意思。

▍安装
pip install --user heartrate
该库目前只支持Python 3.5以上的版本。
▍用法
import heartrate; heartrate.trace(browser=True)
敲完这一行代码后,将会开始表演:
- 开始跟踪程序
- 在线程中启动服务器
- 打开一个浏览器窗口,显示该文件的可视化位置。
在文件视图中,堆栈跟踪位于底部。在堆栈跟踪中,可以单击要跟踪的文件的堆栈条目以在该行打开该文件的可视化。
trace 仅跟踪调用它的线程。要跟踪多个线程,必须在每个线程中调用它,每次都使用不同的端口。
▍更多操作
files
另外,该库还有个files的功能,files 可以确定跟踪哪些文件。
首先,它必须是可调用的,需要一个「文件路径」的参数。如果该文件应该被跟踪,则返回True,例如:
# 加在主程序里
from heartrate import trace, files
trace(files=files.path_contains('my_app', 'my_library'))
可以根据不同需要使用不同的跟踪功能:
- files.all:跟踪所有文件。
- files.path_contains(*substrings) :跟踪路径包含任何给定子字符串的所有文件。
- files.contains_regex(pattern) :跟踪文件本身中包含给定正则表达式的所有文件,因此可以在源代码中标记要跟踪的文件,例如带个注释。
但默认为跟踪包含注释“ # heartrate”的文件。
如果要跟踪多个文件,则可以通过两种方式查看页面的外观:
- 在堆栈跟踪中,单击堆栈条目以查找要跟踪的文件。这将打开页面并跳到该堆栈条目中的行。
- 转到位于http:// localhost:9999 /的索引页(可以单击左上角的徽标)以查看跟踪文件的列表。
host
服务器的HTTP主机。要运行可从任何地方访问的远程服务器,请使用'0.0.0.0',默认'127.0.0.1'。
port
服务器的HTTP端口,默认9999。
browser
如果为True,则会自动打开一个浏览器选项卡,其中显示了trace调用该文件的可视化效果,默认为False。
daemon
设置包含服务器的线程是否是守护线程。将其设置为true可以在程序其余部分完成后关闭服务器。
GitHub主页:
https://github.com/alexmojaki/heartrate
转自:https://mp.weixin.qq.com/s/U6XUbl0qioC97fh_a0LAiw
Python执行程序实可视化_heartrate的更多相关文章
- 用 Python 脚本实现对 Linux 服务器的监控
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...
- 用 Python 脚本实现对 Linux 服务器的网卡流量监控
*这篇文章网上已经有相关代码,为了加深印象,我做了相关批注,希望对朋友们有帮助 工作原理:基于/proc文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新 ...
- Python绘图与可视化
Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...
- python爬虫+数据可视化项目(关注、持续更新)
python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:全国实时温度最低的十个城市气 ...
- Python - matplotlib 数据可视化
在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进 ...
- 如何使用Python快速制作可视化报表----pyecharts
如何使用Python快速制作可视化报表 数据可视化能力已经越来越成为各岗位的基础技能.领英的数据报告显示,数据可视化技能在2017年中国最热门技能中排名第一. 就数据分析而言,可视化探索几乎是你正 ...
- Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?
Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...
- Python中实现对list做减法操作介绍
Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...
- python之gui-tkinter可视化编辑界面 自动生成代码
首先提供资源链接 http://pan.baidu.com/s/1kVLOrIn#list/path=%2F
随机推荐
- UWP 实现Tab导航首页
先看效果: 这个是用Pivot来实现 1.自定义Pivot的样式,使用Blend工具生成模板,将HeaderTemplate的布局都隐藏 1 <Style x:Key="PivotSt ...
- Python之excel第三方库xlrd和xlwt
Python读取excel表格的库xlrd,首先安装xlrd: pip3 install xlrd 代码: #!usr/bin/env python3 #!-*-coding=utf-8 -*- '' ...
- 论文阅读: A Review of Robot Learning for Manipulation: Challenges, Representations, and Algorithms
机器人学习操纵综述:挑战,表示形式和算法 1.介绍 因此,研究人员专注于机器人应如何学习操纵周围世界的问题. 这项研究的范围很广,从学习个人操作技巧到人类演示,再到学习适用于高级计划的操作任务的抽象描 ...
- Python 最简单的数字相乘
风变编程第18关,快要结束了,捎带着复习了一下前面的基础.结果悲剧了. 打开题目是这样的: 比如我们想写一个根据圆的半径(R)来求面积(S)和周长(L)的代码,可以画出以下的流程图 抬眼一看,好简单的 ...
- Linux(Centos7)安装、使用 Docker
一.Linux(CentOS7) 上安装 docker 1.docker 是什么? docker 是一种 虚拟化容器技术,一个开源的应用容器引擎. 基于镜像,可以秒级启动各种容器(运行一次镜像就生成一 ...
- Java通过IO流输出文件目录
//通过IO流输出文件目录,不同级的目录之间用*间隔 1 package com.fjnu.io; 2 3 import java.io.File; 4 5 public class dicOut { ...
- springboot项目中使用jsp
在pom文件中 1.方法一 <!-- 引入tomcate内嵌的jsp解析包--> <dependency> <groupId>org.apache.tomcat.e ...
- Java学习日报7.20
//7.20 三个和尚比身高import java.util.Scanner; //导包public class Hello{ public static void main(String[] arg ...
- reactor模式:主从式reactor
前面两篇文章提到 reactor模式:单线程的reactor模式 reactor模式:多线程的reactor模式 NIO的server模式只有5个阶段,但是,NIO的selectionkey里确实有个 ...
- reactor模式:单线程的reactor模式
reactor模式称之为响应器模式,常用于nio的网络通信框架,其服务架构图如下 不同于传统IO的串行调度方式,NIO把整个服务请求分为五个阶段 read:接收到请求,读取数据 decode:解码数据 ...