跟踪Python包中方法和函数的执行次数

时间:2012-11-27 09:38:29

标签: python oop debugging

  

可能重复:
  How can you profile a Python script?

我正在开发一个API,其中有几个软件包通过各种gui进行协作,我正在慢慢思考如何分析软件包和模块以及方法和类从用户那里获得的调用量。正常运行。认为我可能能够发现瓶颈并找出大部分工作所需的位置,同时还能看到我可以合并类似功能的位置。

我把它想象成一个简单的条形图

enter image description here

每个条形图代表一个方法,模块或包,取决于您有兴趣查看的“深度”,高度轴是它获得的调用量。

目前是否有类似的内容和/或如何在Python中实现此功能?

我正在考虑在每个方法的入口处放一个简单的记录器,比如Debug,然后在我制作图表时过滤掉那些。但这意味着我的代码会变得更加混乱,我必须记住为所有这些代码执行操作。如果我可以在使用某个标志进行编译时应用编译时装饰器,那将更容易。这可能与Python有关吗?

由于

2 个答案:

答案 0 :(得分:1)

我认为stdlib中的trace module会有所帮助。

答案 1 :(得分:0)

PythonDecoratorLibrary中为profiling/tracing a single function提到了装饰器。它将为您实现所描述的内容提供一个良好的开端。

你并没有真正用Python编译东西,它是在运行中完成的,但你可以根据运行时标志改变装饰器的定义来打开和关闭它。