最近发现了一个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的更多相关文章

  1. 用 Python 脚本实现对 Linux 服务器的监控

    目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...

  2. 用 Python 脚本实现对 Linux 服务器的网卡流量监控

    *这篇文章网上已经有相关代码,为了加深印象,我做了相关批注,希望对朋友们有帮助 工作原理:基于/proc文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新 ...

  3. Python绘图与可视化

    Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...

  4. python爬虫+数据可视化项目(关注、持续更新)

    python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:全国实时温度最低的十个城市气 ...

  5. Python - matplotlib 数据可视化

    在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进 ...

  6. 如何使用Python快速制作可视化报表----pyecharts

    如何使用Python快速制作可视化报表   数据可视化能力已经越来越成为各岗位的基础技能.领英的数据报告显示,数据可视化技能在2017年中国最热门技能中排名第一. 就数据分析而言,可视化探索几乎是你正 ...

  7. Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?

    Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...

  8. Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...

  9. python之gui-tkinter可视化编辑界面 自动生成代码

    首先提供资源链接 http://pan.baidu.com/s/1kVLOrIn#list/path=%2F

随机推荐

  1. Autofac官方文档翻译--一、注册组件--4组件扫描

    官方文档:http://docs.autofac.org/en/latest/register/scanning.html Autofac 组件扫描 在程序集中Autofac 可以使用约定来找到并注册 ...

  2. 检验实时3D像素流送平台好坏的七个标准!(上)

    将交互式3D像素流送技术作为有价值的企业工具之后,就该寻找像素流送服务供应商了.问题在于交互式3D像素流送是一种新兴技术,因此很难知道要问供应商的正确问题.在开始使用之前,这里有7个问题,您应该从候选 ...

  3. 记git提交异常

    描述:git项目工作目录和idea空间配置不一致导致git提交了其他项目至gitlab 项目a的工作目录设置为为a的父目录.提交时将目录下的 b项目提交至git 且提交时显示内容与实际提交不符 工作电 ...

  4. 魔改redis之添加命令hrandmember

    魔改redis之添加命令hrandmember 目录 魔改redis之添加命令hrandmember 正文 前言 Set类型与srandmember命令 Hash类型对比Set类型 hrandmemb ...

  5. 想成为Git大神?从学会reset开始吧

    大家好,今天我们来着重介绍一个非常关键的功能就是reset.在上一篇文章介绍修改历史记录的时候曾经提到过,当我们需要拆分一个历史提交记录的时候需要使用reset.估计很多小伙伴不明白,reset究竟做 ...

  6. JS 获取(期号、当前日期、本周第一天、最后一天及当前月第一、最后天函数)    

    JS 获取(期号.当前日期.本周第一天.最后一天及当前月第一.最后天函数 /** 2 * 获取当前月期号 3 * 返回格式: YYYY-mm 4 * / 5 function getCurrentMo ...

  7. Scrum转型(二) Scrum的角色

    1.1 ScurmMaster 作为Scrum流程的捍卫者和布道者,ScrumMaster在Scrum团队中起到至关重要的作用,他们确保团队使用正确的流程,确保团队正确地召开各种会议,他们训练团队的敏 ...

  8. Hbase集群模式搭建

    1.官网下载hbase安装包 这里不做赘述. 2.解压---直接tar -zxvf xxxx 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-si ...

  9. OpenResty 简介

    OpenResty 简介 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台.我们知道开发 Nginx 的模块需要用 C 语言,同时还要熟悉它的源码,成本和门槛比较高.国人 ...

  10. gcc/g++命令参数

    在windows环境下,我们运行一程序,只需要在VS中点击运行按键即可,VS帮我们做完了程序的预处理.编译.汇编.链接阶段 但是在linux环境下,我们只能借助gcc/g++完成这一系列的操作 -o参 ...