1

我已经使用 Python 的 C-API 在我的 c 代码中调用了一些 Python 代码,现在我想分析我的 Python 代码是否存在瓶颈。我遇到了 PyEval_SetProfile API,但不知道如何使用它。我需要编写自己的分析函数吗?

如果您能提供一个例子或指出一个例子,我将非常感激。

4

1 回答 1

2

如果您只需要知道在 Python 代码中花费的时间量,而不是(例如)在 Python 代码中花费最多时间的地方,那么 Python 分析工具不是您想要的。我会编写一些简单的 C 代码,对 Python 解释器调用前后的时间进行采样,并使用它。或者,C 级分析工具将 Python 解释器测量为 C 函数调用。

如果您需要在 Python 代码中进行分析,我不建议您编写自己的分析函数。它所做的只是为您提供原始数据,您仍然需要汇总和分析它。相反,围绕您的 Python 代码编写一个 Python 包装器,该包装器调用 cProfile 模块来捕获您可以检查的数据。

于 2012-07-06T23:58:34.097 回答