Używam cProfile, pstats i Gprof2dot do profilowania raczej długiego skryptu python.cProfile i Python: Znajdowanie konkretnego numeru wiersza, który kod spędza najwięcej czasu na
Wyniki mówią, że najwięcej czasu spędzam na wywoływanie metody w obiekcie, który zdefiniowałem. Jednak chciałbym wiedzieć dokładnie, jaki numer linii w tej funkcji pochłania czas.
Każdy pomysł, jak uzyskać dodatkowe informacje?
(Nawiasem mówiąc, używam Python 2.6 na OSX irbis czy to pomaga ...)
refaktoryzacja na małe funkcje nie zawsze jest możliwa - a wywoływanie funkcji jest kosztowne w pythonie, może to w znaczący sposób wpływać na szybkość. –
+1: Najprościej jest rozbić na mniejsze części. Można również zawijać niektóre bloki do zdefiniowanych lokalnie funkcji czasowych (do profilowania). Pozwoli to nawet na oddzielne połączenia księgowe do tej samej funkcji z różnych miejsc. –