我正在使用一个Python扩展(版本为2.7.2),它是用Fortran编写的(gfortran 4.4.7),并通过f2py(Ver. 2)进行编译。我可以用cProfile对Python部分进行剖析,但结果没有提供任何有关Fortran函数的信息,而是将时间归因于调用Fortran函数的Python函数。我已经为构建的所有Fortran对象启用了“-pg -O”标志,以及通过以下方式通过f2py调用创建共享对象:
f2py --opt="-pg -O"
...请您帮忙提示如何获得有关Fortran的信息,谢谢!如果有人使用类似的设置,并使用不同的分析器,我也很感兴趣。
if __name__=="__main__":
部分放置测试例程是一个好的实践。因此,我建议编写一个单独的 Fortran 程序以单独分析此部分。 - Stefan<ipython-input-51-f4bf36c6a947>:84(<module>)
。虽然你无法确定正在被调用的模块,但它可以给你一个想法。另一种方法是将其包装成Python函数,然后查看Python函数的时间。 - ilciavo