我使用的是Python (2.7.2)的一个扩展,它是通过f2py (Ver.2)。
我可以用cProfile
分析Python部分,但是结果没有给出任何关于Fortran函数的信息。相反,时间归因于Python函数调用Fortran函数。
我已经为我构建的所有Fortran对象启用了"-pg -O“标志,并且在通过以下方式创建共享对象的f2py调用中也是如此:f2py --opt="-pg -O"
...
任何关于如何获得Fortran信息的提示也是非常感谢的。
如果有人使用类似的设置,使用不同的分析器,我也会感兴趣。
发布于 2016-06-26 14:42:40
Fortran函数调用显示为:
<ipython-input-51-f4bf36c6a947>:84(<module>).
我知道,您无法识别正在调用的是哪个模块,但至少这给了您一个概念。
另一种方法是将其包装到Python函数中,然后查看Python函数的计时。
发布于 2014-08-08 04:02:22
看看python扩展分析器yep。
发布于 2017-07-10 17:08:59
这个工作流程似乎运行得很好:
valgrind --tool=callgrind python my_python_script_calling_f2py_functions.py arg1 arg2
gprof2dot -f callgrind callgrind.out.27237 > callgrind.dot
使用
生成图形问题
dot -Tjpg callgrind.dot -o callgrind.jpg
https://stackoverflow.com/questions/16544901
复制相似问题