这款神器,能把Python代码执行过程看地一清二楚
对于一些刚入门 Python 的朋友来说,代码稍微复杂些就难以搞懂代码内部到底是怎么运行的了,而且有时一运行就报错,难以一下发现错误,只会用 Print 去慢慢找异常的地方,效率很低下。所以对程序进行监控和调试很重要。今天就给大家分享一个由国外大神制作的 Python 神工具,可以实时动态地监控 Python 程序的运行情况,逐行追踪代码的运行时间,整个过程是可视化的,这就很赞了啊,能一清二楚地了解程序运行情况,有异常时也能快速找到,节省大量时间。
项目地址:
https://github.com/alexmojaki/heartrate
Heartate——如监测心率般追踪程序运行
这个工具库叫 Heartrate ,可以实时可视化 Python 程序的执行过程。监控运行中的 Python 程序如图:
文章图片
如图所示,左侧数字表示每行代码被触发的次数。长方框表示最近被触发的代码行——方框越长表示触发次数越多,颜色越浅表示最近被触发次数越多。
虽然追踪每行代码的触发次数是一个方法,但是要是能计算每次触发代码的执行时间就好了。这样能够更好地说明哪行代码是效率瓶颈。by 思得益于 executing ( https://github.com/alexmojaki... 库,当前被执行的调用以高亮显示。实时堆栈追踪(stacktrace)如下所示:
文章图片
该工具可以:
- 启动程序追踪
- 在线程中启动服务器
- 打开显示 trace() 被调用的文件可视化图的浏览器窗口
trace 只追踪调用它的线程。若要追踪多线程,用户必须在每个线程都予以调用,并且每次的端口也不同。
如何设置需要监测的程序
files 确定了除调用的 trace 之外其他需要追踪的文件。files 必须是可调用的,并接受一个参数:文件路径,同时如果应该追踪该文件,则需要返回 True。为方便起见,这位开发者提供了以下函数:
- files.all:追踪所有文件;
- files.path_contains(substrings):追踪路径中包含任何给定子字符串的所有文件;
- files.contains_regex(pattern):追踪自身包含给定正则表达式(regex)的所有文件,所以用户可以在源代码中标记所追踪的文件,如添加注释。
如果用户要追踪多个文件,则可通过以下两种方式得到它们的可视化页面:
- 在堆栈追踪中,用户点击正在追踪的堆栈条目,则可以打开页面并跳转至堆栈条目;
- 跳转至 http://localhost:9999/ 网站的索引页,从而查看追踪文件列表。
port:服务器的 HTTP 端口。默认为 9999。
browser:若为 True,则自动打开显示文件(trace 被调用)可视化图的浏览器标签。默认为 False。
安装
pip install --user heartrate
支持 Python 3.5 以上版本。
其他代码可视化工具
除了上面这个外,还有一个可以可视化代码执行过程的网站,名为 Pythontutor。和本文的 Heartrate 不同,该网站更多的是可视化数据在程序中的变化过程。
【这款神器,能把Python代码执行过程看地一清二楚】可视化的过程如下:
文章图片
用户还可以在网站上编辑修改代码,观察运行过程中数据的变化。同时该网站还有 Java 等其他语言的版本。
网站地址:
http://www.pythontutor.com
(http://www.pythontutor.com/)参考链接:
https://github.com/alexmojaki/heartrate
逆锋起笔
是一个专注于程序员的编程圈子,以分享java
、Python
、学习资源
为主,关注即可领取 23 种精选的编程视频教程和大佬们推荐的电子版学习资料!
推荐阅读
- NeuVector 会是下一个爆款云原生安全神器吗()
- 如何转录逐字稿(|如何转录逐字稿?| 提升咨询技能的必备神器)
- 爱拍美图-自拍美颜camera激萌神器
- 【乐高创意作品】超智能!这款乐高搭建的除草机!
- 这款充电最快的5G手机就要发布了,你对它还一无所知()
- 小程序|【视频倒放神器】超级玩法(千万不要倒放视频,太魔性了根本停不下来......)
- 网红端到端测试神器Cypress开箱试用报告
- 故乡,我只能把你种成最朴实的模样
- 你还要等到什么时候才能把自己找回来
- 2020-04-20怎么做才能把乳胶漆的质感完美表现出来呢()