如何配置组合python和c代码

ele*_*ser 7 c python profiling

我有一个由多个python脚本组成的应用程序.其中一些脚本正在调用C代码.应用程序现在运行速度比现在慢得多,因此我想对其进行分析以查看问题所在.是否有工具,软件包或只是一种方式来分析这样的应用程序?一个工具,它将遵循python代码到C代码并配置这些调用?

注1:我很清楚标准的Python分析工具.我特意在这里寻找组合的Python/C分析.

注2:Python模块使用ctypes调用C代码(有关详细信息,请参阅http://docs.python.org/library/ctypes.html).

谢谢!

Mik*_*vey 3

堆栈截图有效。由于您已经组合了 Python 和 C,因此您可以单独处理它们。对于 Python,您可以在检查堆栈速度很慢时按 Ctrl-C。这样做几次。这将暴露您可以在 python 代码中修复的任何内容。对于 C 代码,在 GDB 之类的调试器下运行整个程序,然后按 Ctrl-C 以获得 C 中的堆栈跟踪。其中一些将公开您可以在 C 代码中修复的任何内容。我听说 OProfile 也可以做到这一点。(另一种方法是使用lsstack(如果可用)。

这是一种鲜为人知的方法,其工作原理如下:假设您有一个无限循环或接近无限循环。你会怎么找到它?您会停止该程序并查看它在做什么,对吧?假设该程序只花费了所需时间的两倍。每次你停止它时,你发现它做不必要的事情的几率是 50%。所以你所要做的就是多次停止它。一旦您看到它在短短 2 个样本上做了一些可以改进的事情,您就知道您可以修复它以实现健康的加速。然后你可以重复它来解决下一个问题。测量不是重点。抓住你可以改进的地方才是重点。