对于一些刚入门 Python 的朋友来说,代码稍微复杂些就难以搞懂代码内部到底是怎么运行的了,而且有时一运行就报错,难以一下发现错误,只会用 Print 去慢慢找异常的地方,效率很低下。
所以对程序进行监控和调试很重要。今天就给大家分享一个由国外大神制作的 Python 神工具,可以实时动态地监控 Python 程序的运行情况,逐行追踪代码的运行时间,整个过程是可视化的,这就很赞了啊,能一清二楚地了解程序运行情况,有异常时也能快速找到,节省大量时间。
项目地址:https://github.com/alexmojaki/heartrate
Heartate——如监测心率般追踪程序运行
这个工具库叫 Heartrate ,可以实时可视化 Python 程序的执行过程。监控运行中的 Python 程序如图:
如图所示,左侧数字表示每行代码被触发的次数。长方框表示最近被触发的代码行——方框越长表示触发次数越多,颜色越浅表示最近被触发次数越多。
虽然追踪每行代码的触发次数是一个方法,但是要是能计算每次触发代码的执行时间就好了。这样能够更好地说明哪行代码是效率瓶颈。by 思得益于 executing (https://github.com/alexmojaki/executing) 库,当前被执行的调用以高亮显示。
实时堆栈追踪(stacktrace)如下所示:
功能
该工具可以:
- 启动程序追踪
- 在线程中启动服务器
- 打开显示 trace() 被调用的文件可视化图的浏览器窗口
在文件视图中,堆栈追踪位于底部。而在堆栈追踪中,用户可以点击正在追踪文件的堆栈条目,从而在该代码行打开文件的可视化图。
trace 只追踪调用它的线程。若要追踪多线程,用户必须在每个线程都予以调用,并且每次的端口也不同。
如何设置需要监测的程序
files 确定了除调用的 trace 之外其他需要追踪的文件。files 必须是可调用的,并接受一个参数:文件路径,同时如果应该追踪该文件,则需要返回 True。为方便起见,这位开发者提供了以下函数:
- files.all:追踪所有文件;
- files.path_contains(substrings):追踪路径中包含任何给定子字符串的所有文件;
- files.contains_regex(pattern):追踪自身包含给定正则表达式(regex)的所有文件,所以用户可以在源代码中标记所追踪的文件,如添加注释。
默认情况下追踪包含注释 # heartrate 的文件(空格可选)。
如果用户要追踪多个文件,则可通过以下两种方式得到它们的可视化页面:
- 在堆栈追踪中,用户点击正在追踪的堆栈条目,则可以打开页面并跳转至堆栈条目;
- 跳转至 http://localhost:9999/ 网站的索引页,从而查看追踪文件列表。
host:服务器的 HTTP host。若要运行可从任何地方访问的远程服务器,使用'0.0.0.0'。默认为'127.0.0.1'。 port:服务器的 HTTP 端口。默认为 9999。 browser:若为 True,则自动打开显示文件(trace 被调用)可视化图的浏览器标签。默认为 False。
安装
pip install --user heartrate
支持 Python 3.5 以上版本。
其他代码可视化工具
除了上面这个外,还有一个可以可视化代码执行过程的网站,名为 Pythontutor。和本文的 Heartrate 不同,该网站更多的是可视化数据在程序中的变化过程。
可视化的过程如下:
用户还可以在网站上编辑修改代码,观察运行过程中数据的变化。同时该网站还有 Java 等其他语言的版本。
网站地址:http://www.pythontutor.com
(http://www.pythontutor.com/)
参考链接:https://github.com/alexmojaki/heartrate
逆锋起笔
是一个专注于程序员的编程圈子,以分享java
、Python
、学习资源
为主,关注即可领取 23 种精选的编程视频教程和大佬们推荐的电子版学习资料!
相关推荐
1. "eatSomething.exe":这是一个Windows操作系统下的可执行文件,可能是将Python代码编译成的二进制程序,用户可以直接运行,无需安装Python环境。通过双击这个文件,用户就可以直接使用“干饭神器”来获取饮食建议...
"十分钟让你看懂Python"这个标题暗示着这本书旨在快速引导读者理解Python的基础概念,让初学者能在短时间内对Python有一个基本的认识。 在十分钟内,你可以了解Python的基本结构,包括如何打印输出(print语句)、...
【Python实现的仿抖音表白神器】是一个利用编程语言Python创建的独特应用,旨在为用户提供一种创意且有趣的方式来表达情感。此程序通常包含动画、音乐、文字等元素,模仿抖音上流行的表白方式,以此来增加表白的趣味...
520表白神器, python photowall making tool for 'I Love You'
情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 ...
【Python3开发Android截屏神器】是一款利用Python编程语言实现的高效、便捷的安卓设备屏幕截图工具。在本文中,我们将深入探讨如何使用Python3来创建这样的应用,以及它所涉及的关键技术和概念。 首先,Python3是这...
淘宝秒杀神器是一款基于Python开发的应用程序,设计用于在淘宝平台进行快速抢购商品,尤其适合那些热门且库存有限的“秒杀”活动。这款工具的亮点在于其简单易用和高效性,只需要简单的三步操作,用户就能设置好抢购...
5. **辅助调试**:在调试过程中,如果只有编译后的二进制文件,反编译工具可以帮助我们理解执行逻辑,从而更有效地定位问题。 6. **安全与法律问题**:虽然反编译可以带来便利,但必须注意,未经许可反编译他人的...
1. **Visual Studio Code (VSCode)**:VSCode是一款由微软开发的免费开源代码编辑器,支持多种编程语言,包括Python。它具有强大的代码提示、调试功能、内置Git支持和丰富的插件生态系统。对于Windows用户,可以通过...
这个编辑器可以将python的代码式编程转换成了像scratch一样的图形化编程,还可以在代码和图形之间随意切换,而且python常用的库这上面也有,还有几十种第三方包可供免费下载。作者大力推荐,由于图形化代码较少,并...
无论是Windows、Linux还是macOS,Python都能很好地运行,这使得基于Python的运维工具可以在不同的操作系统上无缝切换。 2. **标准库与第三方库**:Python拥有强大的标准库,如`os`、`subprocess`和`shutil`等,可以...
客观题和编程题自测模块的公共学号:123456,姓名:Python小屋,该学号不能用于考试,只用于刷题,但仍建议使用自己的学号和姓名刷题。客观题自测模块不需要提交答案,可以自己做一下然后单击“查看答案”按钮自行...
Python 动态心形代码,浪漫表白神器 实现效果 1 数学中美丽的心形线:r=a(1-sinθ) 2 利用python的turtle教你动态的爱心图表白 3 利用python的plt教你画渐变颜色爱心图表白 4 利用python的plt教你画3D爱心图表白 5 ...
最后,将所有代码打包成一个可执行文件,方便在任何计算机上运行,无需安装Python环境。可以使用PyInstaller这样的工具,将Python脚本转换为独立的exe程序,这样你的表白神器就可以随时随地展示了。 综上所述,...
软件readme文档在后面,若侵则删。
在本教程中,我们将深入探讨如何使用Python编程语言来创建一个独特的抖音表白神器。这个项目不仅将展示Python在实际应用中的强大能力,还将让你了解如何利用编程为生活增添趣味性。我们将涵盖以下几个关键知识点: ...
在本教程中,我们将关注如何使用Python的Tkinter库来制作一个点名神器。Tkinter是Python的标准GUI(图形用户界面)库,非常适合创建简单的桌面应用。 首先,让我们了解Tkinter库。Tkinter是Python与Tk图形库的接口...
标题中的“爬蟲神器快速將ChromeHTTPrequest匯出成Pythoncode”揭示了这个工具或教程主要是关于如何将浏览器(Chrome)中的HTTP请求转换为可执行的Python代码,这对于Web爬虫开发者来说是一个非常实用的功能。它能...
这使得SourceInsight能更好地适应不同开发者的习惯和需求。 6. **版本控制系统集成** SourceInsight可以与常见的版本控制系统(如Git、SVN)无缝集成,允许用户在查看代码的同时查看历史版本,比较差异,以及提交...
在这个“pdf转换神器”项目中,我们主要关注的是Python在处理PDF文件方面的应用,特别是如何将PDF转换为其他格式,比如Word文档。 Python提供了多种库来处理PDF文件,其中最常用的可能是`PyPDF2`库,用于读取和操作...