`

这款神器,能把Python代码执行过程看地一清二楚

阅读更多

对于一些刚入门 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

逆锋起笔是一个专注于程序员的编程圈子,以分享javaPython学习资源 为主,关注即可领取 23 种精选的编程视频教程和大佬们推荐的电子版学习资料!

分享到:
评论

相关推荐

    文章:python干饭神器-今天吃什么?python告诉你 的源代码

    1. "eatSomething.exe":这是一个Windows操作系统下的可执行文件,可能是将Python代码编译成的二进制程序,用户可以直接运行,无需安装Python环境。通过双击这个文件,用户就可以直接使用“干饭神器”来获取饮食建议...

    十分钟让你看懂Python

    "十分钟让你看懂Python"这个标题暗示着这本书旨在快速引导读者理解Python的基础概念,让初学者能在短时间内对Python有一个基本的认识。 在十分钟内,你可以了解Python的基本结构,包括如何打印输出(print语句)、...

    基于Python实现的仿抖音表白神器代码Python实现的无法拒绝的表白代码

    【Python实现的仿抖音表白神器】是一个利用编程语言Python创建的独特应用,旨在为用户提供一种创意且有趣的方式来表达情感。此程序通常包含动画、音乐、文字等元素,模仿抖音上流行的表白方式,以此来增加表白的趣味...

    Python-520表白神器python照片墙制作工具

    520表白神器, python photowall making tool for 'I Love You'

    情人节 python表白神器

    情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 python表白神器情人节 ...

    Python-使用Python3开发的一款Android截屏神器

    【Python3开发Android截屏神器】是一款利用Python编程语言实现的高效、便捷的安卓设备屏幕截图工具。在本文中,我们将深入探讨如何使用Python3来创建这样的应用,以及它所涉及的关键技术和概念。 首先,Python3是这...

    淘宝秒杀神器 python

    淘宝秒杀神器是一款基于Python开发的应用程序,设计用于在淘宝平台进行快速抢购商品,尤其适合那些热门且库存有限的“秒杀”活动。这款工具的亮点在于其简单易用和高效性,只需要简单的三步操作,用户就能设置好抢购...

    代码反编译神器

    5. **辅助调试**:在调试过程中,如果只有编译后的二进制文件,反编译工具可以帮助我们理解执行逻辑,从而更有效地定位问题。 6. **安全与法律问题**:虽然反编译可以带来便利,但必须注意,未经许可反编译他人的...

    Python编辑器 一键安装神器.docx

    1. **Visual Studio Code (VSCode)**:VSCode是一款由微软开发的免费开源代码编辑器,支持多种编程语言,包括Python。它具有强大的代码提示、调试功能、内置Git支持和丰富的插件生态系统。对于Windows用户,可以通过...

    给python小白们推荐的记代码神器

    这个编辑器可以将python的代码式编程转换成了像scratch一样的图形化编程,还可以在代码和图形之间随意切换,而且python常用的库这上面也有,还有几十种第三方包可供免费下载。作者大力推荐,由于图形化代码较少,并...

    Python-Python实现跨平台批量运维小神器

    无论是Windows、Linux还是macOS,Python都能很好地运行,这使得基于Python的运维工具可以在不同的操作系统上无缝切换。 2. **标准库与第三方库**:Python拥有强大的标准库,如`os`、`subprocess`和`shutil`等,可以...

    Python刷题神器.rar

    客观题和编程题自测模块的公共学号:123456,姓名:Python小屋,该学号不能用于考试,只用于刷题,但仍建议使用自己的学号和姓名刷题。客观题自测模块不需要提交答案,可以自己做一下然后单击“查看答案”按钮自行...

    Python 动态心形代码(turtle),浪漫表白神器.zip

    Python 动态心形代码,浪漫表白神器 实现效果 1 数学中美丽的心形线:r=a(1-sinθ) 2 利用python的turtle教你动态的爱心图表白 3 利用python的plt教你画渐变颜色爱心图表白 4 利用python的plt教你画3D爱心图表白 5 ...

    Python设计表白神器无法拒绝的爱——亲测可用

    最后,将所有代码打包成一个可执行文件,方便在任何计算机上运行,无需安装Python环境。可以使用PyInstaller这样的工具,将Python脚本转换为独立的exe程序,这样你的表白神器就可以随时随地展示了。 综上所述,...

    Python小屋刷题神器.exe

    软件readme文档在后面,若侵则删。

    手把手教你用Python开发抖音表白神器

    在本教程中,我们将深入探讨如何使用Python编程语言来创建一个独特的抖音表白神器。这个项目不仅将展示Python在实际应用中的强大能力,还将让你了解如何利用编程为生活增添趣味性。我们将涵盖以下几个关键知识点: ...

    python利用tk制作点名神器 适合初学者

    在本教程中,我们将关注如何使用Python的Tkinter库来制作一个点名神器。Tkinter是Python的标准GUI(图形用户界面)库,非常适合创建简单的桌面应用。 首先,让我们了解Tkinter库。Tkinter是Python与Tk图形库的接口...

    爬蟲神器快速將ChromeHTTPrequest匯出成Pythoncode

    标题中的“爬蟲神器快速將ChromeHTTPrequest匯出成Pythoncode”揭示了这个工具或教程主要是关于如何将浏览器(Chrome)中的HTTP请求转换为可执行的Python代码,这对于Web爬虫开发者来说是一个非常实用的功能。它能...

    看代码神器sourceinsight

    这使得SourceInsight能更好地适应不同开发者的习惯和需求。 6. **版本控制系统集成** SourceInsight可以与常见的版本控制系统(如Git、SVN)无缝集成,允许用户在查看代码的同时查看历史版本,比较差异,以及提交...

    pdf转换神器_python3.7_python_源码

    在这个“pdf转换神器”项目中,我们主要关注的是Python在处理PDF文件方面的应用,特别是如何将PDF转换为其他格式,比如Word文档。 Python提供了多种库来处理PDF文件,其中最常用的可能是`PyPDF2`库,用于读取和操作...

Global site tag (gtag.js) - Google Analytics