对于一些刚入门Python的朋友来说,代码稍微复杂一点的时候,很难看懂代码是怎么运行的,有时候运行的时候会报一个error,很难一下子发现错误,只能通过Print慢慢找到异常的地方,效率很低。所以对程序进行监控和调试是非常重要的。今天给大家分享一个国外高手做的Python工具,可以实时动态监控Python程序的运行状态,逐行跟踪代码的运行时间。整个过程可视化,非常好。可以清零清楚的了解程序的运行状态,当出现异常时可以快速的发现,节省大量的时间。项目地址:https://github.com/alexmojaki/heartrateHeartate——像监测心率一样跟踪程序运行这个工具库叫做Heartrate,可以实时可视化Python程序的执行过程。如图监控正在运行的Python程序:如图,左边的数字表示每行代码被触发的次数。长框表示最近触发的代码行——框越长,触发的次数越多,颜色越浅,触发的时间越近。虽然跟踪每行代码触发的次数是一种方法,但如果能够计算每个触发代码的执行时间就更好了。这样可以更好的说明哪一行代码是效率瓶颈。by思思感谢execution(https://github.com/alexmojaki...库,当前执行的调用被高亮显示。实时堆栈跟踪(stacktrace)如下:这个工具可以:启动程序跟踪在线程中在浏览器窗口中启动服务器会打开一个浏览器窗口,显示调用trace()的文件的可视化。在文件视图中,堆栈跟踪位于底部。在堆栈跟踪中,用户可以单击在被跟踪文件的栈入口打开文件可视化图,trace只跟踪调用它的线程,要跟踪多个线程,用户必须在每个线程中调用,每次的端口都不一样。如何设置需要监控的程序文件确定跟踪除了调用其他需要跟踪的文件files必须是一个可调用的,接受一个参数:文件路径,如果要跟踪文件需要返回True.为了方便,本开发者提供了以下功能:files.all:跟踪所有文件;files.path_contains(substrings):跟踪路径包含任何给定子字符串的所有文件;files.contains_regex(pattern):traceitself包含所有具有给定正则表达式(regex)的文件,因此用户可以在源代码中标记被跟踪的文件,例如添加注释。默认跟踪包含注释#heartrate的文件(空格可选)。如果用户想跟踪多个文件,可以通过以下两种方式获取他们的可视化页面:在stacktrace中,用户点击被跟踪的stackentry,打开页面并跳转到stackentry;跳转到http://localhost:9999/网站的索引页查看跟踪文件列表。host:服务器的HTTP主机。要运行可从任何地方访问的远程服务器,请使用“0.0.0.0”。默认为“127.0.0.1”。端口:服务器的HTTP端口。默认值为9999。浏览器:如果为True,则自动打开一个浏览器选项卡,显示文件的可视化(调用跟踪)。默认为假。安装pipinstall--userheartrate以支持Python3.5及以上版本。其他代码可视化工具除了上述之外,还有一个可以可视化代码执行过程的网站,叫做Pythontutor。与本文中的Heartrate不同,这个网站更多的是将数据在程序中的变化过程可视化。可视化过程如下:用户也可以在网站上编辑修改代码,观察数据在运行过程中的变化。同时网站也有Java等其他语言的版本。网址:http://www.pythontutor.com(http://www.pythontutor.com/)参考链接:https://github.com/alexmojaki/heartrate奇比是一个专注于程序员的编程圈,主要是分享java、Python和学习资源。关注即可领取大佬推荐的23本精选编程视频教程和电子学习资料!
