3

我使用出色的 f2py 工具将我的大部分代码编写为 Python 的 Fortran 扩展。然而,有时很难捕捉到内存泄漏,并分析程序(花费最多时间的地方)。

问题是:是否有一些简单的方法可以为 Python 调试和/或配置文件扩展(尤其是 f2py 生成的)?使用 valgrind 似乎很复杂(我使用 MacOsX,并且不想重新编译解释器)。我现在唯一的选择是打印-调试+打印-配置文件,这很耗时。

4

1 回答 1

2

如果任何其他人在 Linux 平台上遇到同样的问题(抱歉,不支持 OS/X,所以我知道这不是你的“答案”) - Allinea 工具可以分析和调试在 Python 中调用的 Fortran 扩展,并且查看任何内存泄漏。

与 callgrind/kcachegrind 相比,分析器运行得更快(通常最大减慢 5%),并且由于它理解矢量化和实时运行意味着 I/O 分析是准确的,因此代码运行速度慢的原因要深得多。

有一个探索f2py 扩展调试和分析的博客介绍了它。

于 2015-02-13T18:18:01.753 回答