乐趣区

关于python:这款神器能把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)的所有文件,所以用户能够在源代码中标记所追踪的文件,如增加正文。

默认状况下追踪蕴含正文 # 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 种精选的编程视频教程和大佬们举荐的电子版学习材料!

退出移动版