我常用的Python调试工具(二)

标签: IT技术 Python 工具 调试 | 发表时间:2013-12-09 19:29 | 作者:高磊
出处:http://blog.jobbole.com

这是对 上一篇关于调试器的文章的一个小小的补充。

标准库有三种分析方法( cProfile和profilehotshot)以及不计其数的第三方可视化工具,转化器,以及诸如此类的东西。

工具多了,不靠谱的建议自然少不了。

 

如果你不知道该用什么,那就用一个可视化的工具吧!

有很多的建议供你选择自己要用的可视化工具,但无论是使用如标准库的Stats模块这种文本形式的还是像 pycallgraph或者 gprof2dot这样的图形化的库,第一反应都是要写代码来生成报表。

但是这个主意很糟糕,你需要不断修改代码来改变或者探索报表的内容。如果你不是在寻找一块特定的代码块,那么一切会变得混乱不堪。你很可能会错过那些真正扼杀你程序性能的事情。

 

RunSnakeRun

你可以用pip install RunSnakeRun 或者 apt-get install runsnakerun来安装或者从 源码安装。

RunSnakeRun 是一个全面的工具,很容易集成 – 你可以和cProfile/profile来配合使用,只需要给profile.run方法指定一个filename的参数即可,比如:

import cProfile
cProfile.run("main()", filename="my.profile")

然后,在终端里运行:

runsnake my.profile

结果看起来就像这样:

这是可接受的,如果你的分析文件不是特别大的话,它会工作的很好。比如:你只有一个占用了太多运行时间的函数。

RunSnakeRun有一个内存调试模式(需要 Meliae)。遗憾的是我还没有试过。但是如果你想看到内存的使用情况,它看起来确实很有用。就像 这样

 

KCachegrind

你可以用apt-get install kcachegrind 来安装或者从 源码安装。

鲜为人知的秘密:有windows版本的KCachegrind二进制包。 只需要安装 windows版本的KDE,然后在选项“开发者工具”选中它,很可能要取消选择其他项)。

我真的很喜欢这工具!它可以向你展示调用树的图表,可排序的调用表,调用/被调用的地图,源代码,而且你还能选择过滤掉所有的东西。而且它是语言无关的 – 如果你有C/C++背景的话,你很可能听说过这个工具。

我喜欢这个工具的程度超过RunSnakeRun,因为它比后者功能要强大的多:

  • 在调用数的图表上,你可以排序,改变布局/用很多方法来渲染或者导出成点图/png,RunSnakeRun甚至不能显示调用树的图表
  • 你可以看见源码
  • 你可以得到被调用地图
  • 更容易安装(不需要依赖wxPython)

在大项目里面哪些需要关注并不是那么显而易见,或者有很多的相关函数时,KCachegrind比RunSnakeRun更值得一用。

可生成KCachegrind 分析文件的工具

我想这是唯一的缺点,你需要用这种特殊的格式导出。但是它也有很好的支持:

我使用的是函数装饰器,无非在你的/tmp目录下多了些导出的分析文件。

附上截图:

还有值得一提的工具?请评论留言!

我常用的Python调试工具(二),首发于 博客 - 伯乐在线

相关 [python 调试工具] 推荐:

我常用的Python调试工具(二)

- - 博客 - 伯乐在线
这是对 上一篇关于调试器的文章的一个小小的补充. 标准库有三种分析方法( cProfile和profile, hotshot)以及不计其数的第三方可视化工具,转化器,以及诸如此类的东西. 工具多了,不靠谱的建议自然少不了. 如果你不知道该用什么,那就用一个可视化的工具吧. 有很多的建议供你选择自己要用的可视化工具,但无论是使用如标准库的Stats模块这种文本形式的还是像 pycallgraph或者 gprof2dot这样的图形化的库,第一反应都是要写代码来生成报表.

gdb调试工具

- - CSDN博客系统运维推荐文章
查看帮助一是man 命令,二是进入 www.gnu.org,找到gdb的帮助文档(更详细). gcc -Wall -g main.c -o main,只有这样才能产生调试信息,包括core的调试信息.     run(r)  运行,执行到断点,重新用r,表示重新开始执行.     list(l)  列出源代码,l 2,l main,l 2,16(数字表示行数).

Mobile Web调试工具Weinre

- - 移动开发 - ITeye博客
现在、将来,用移动设备上网越来越成为主流. 但对于开发者们来说,移动web的调试一直是个难题,前期可以使用模拟器来协助调试,但到了真机调试阶段就让人非常头痛. 而Weinre就是解决这难题的利器.   Weinre的本意是Web Inspector Remote,它是一种远程调试工具. 功能与Firebug、Webkit inspector类似,可以帮助我们即时更改页面元素、样式,调试JS等,下面就简单介绍下如何使用.

Web调试工具 Fiddler 教程

- - 互联网旁观者
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助. Fiddler的基本介绍. Fiddler的官方网站:  www.fiddler2.com.

WinDbg 调试工具的使用

- king - 博客园-首页原创精华区
项目接近尾声了,可是在运行时会有memory leak(内存泄露) bug.产品在运行一天后,内存增长致1.4G,而我们产品的初始内存才有70M,问题很严重,决定采用WinDbg工具来分析代码问题有原因到底在哪里.. WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件.

IE各个版本的调试工具

- - CSDN博客互联网推荐文章
最近使用JQuery开发的网页在IE6浏览器下出现样式不对,VS2010调试的时候有些不便. 无意之中看到由微软开发的 modern.ie,继而发现 BrowserStack,发现有很多的IE调试工具,就用微软开发的那款吧. Expression Web SuperPreview 4.0软件简介.

windows客户端开发调试工具

- - CSDN博客综合推荐文章
本文介绍windows常用开发与调试工具. 1.windows常用开发与调试工具. 内核大神打造,含大量windows系统工具,windows开发必备神器,大神被MS招安. 下载地址:http://technet.microsoft.com/en-us/sysinternals. 监视程序运行过程中的动作,可用于性能监控.

Linux下gdb调试工具的使用

- - CSDN博客综合推荐文章
gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具. gdb主要完成四个方面的功能:(1)、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序;(2)、可让被调试的程序在你所指定的调试的断点处停住(断点可以是条件表达式);(3)、当程序被停住时,可以检查此时你的程序中所发生的事;(4)、动态的改变你程序的执行环境.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.