Używam rozszerzenia do Pythona (2.7.2) napisanego w Fortranie (gfortran 4.4.7) skompilowanego przez f2py (wer. 2).Rozszerzenie Fortran do Pythona przez f2py: Jak profilować?
Mogę profilować część Pythona za pomocą cProfile
, ale wynik nie daje żadnych informacji o funkcjach Fortran. Zamiast tego czas jest przypisywany do funkcji Pythona wywołującej funkcję Fortran.
I umożliwiły „-pg -O” flagi dla wszystkich obiektów Fortran buduję, jak również w zaproszeniu f2py tworzącego obiekt udostępniony poprzez: f2py --opt="-pg -O"
...
wszelkie podpowiedzi, w jaki sposób uzyskać Informacje Fortran też są bardzo cenione.
Jeśli ktoś używa podobnej konfiguracji, z innym profilerem, również byłbym zainteresowany.
FWIW, przestałem używać f2py z tego powodu ... trudno jest wejść i zobaczyć, co dzieje się w kodzie Fortrana. Problem polega na tym, że kod Fortrana jest zawijany za pomocą kodu C, co dodatkowo utrudnia sytuację. – SethMMorton
Może powinieneś wypróbować go w trybie pytonowym: dobrą praktyką jest umieszczanie procedur testowych w 'if __name __ ==" __ main __ ":' części modułów python. Proponuję więc napisać oddzielny program Fortran, aby profilować tę część osobno. – Stefan
Wywołanie funkcji Fortran pojawia się jako ': 84 ()'. To prawda, że nie możesz określić, który moduł jest wywoływany, ale daje ci to pomysł. Innym sposobem jest zawarcie go w funkcji Pythona, a następnie zobaczenie czasu dla funkcji Pythona. –
ilciavo