0

可能重复:
如何分析 Python 脚本?

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

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

在此处输入图像描述

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

目前有没有类似的东西和/或你将如何在 Python 中实现它?

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

谢谢

4

2 回答 2

1

我认为 stdlib 中的跟踪模块会有所帮助。

于 2012-11-27T10:29:27.613 回答
0

PythonDecoratorLibrary 中提到了用于分析/跟踪单个函数的装饰器。它会给你一个运行你所描述的实施的开始。

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

于 2012-11-27T12:11:37.020 回答