Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2008 15:20:13

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

hotshot профайлер. как посмотреть результаты?

выполняю:

import hotshot
from math import *
prof = hotshot.Profile( "1.txt" )
a = prof.runcall( ceil, 1.1 )
prof.close()
print a
результат отображается верно: 2.0

в файле 1.txt я ожидал увидеть результаты профилирования, а там какая-то системная инфа с указанием каталогов.

как посмотреть результаты профилирования?



Офлайн

#2 Сен. 2, 2008 15:26:52

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

hotshot профайлер. как посмотреть результаты?

from math import *
Так делать - плохо.
Вы не дочитали доку.
stats = hotshot.stats.load("1.txt")
stats.strip_dirs()
stats.sort_stats('time', 'calls')
stats.print_stats(20)

Отредактировано (Сен. 2, 2008 15:30:53)

Офлайн

#3 Сен. 3, 2008 18:04:36

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

hotshot профайлер. как посмотреть результаты?

спасибо, действительно не дочитал!

ещё задался вопросом, как получать вывод статистики не в консоль, а в переменную.
и с помощью http://googleappengine.ru/kb/commontasks.html пришёл к такому варианту,
только использующему другой профайлер, но мне пока разницы в этом нет

итого:

        import cProfile, pstats, StringIO
stream = StringIO.StringIO()
prof = cProfile.Profile()
prof = prof.runctx("function( **l_Args ))", globals(), locals())
stats = pstats.Stats(prof, stream=stream)
stats.sort_stats("time", "calls")
stats.print_stats(80)
Result = stream.getvalue()
и надо заметить, что тут входящая l_Args - должна быть глобальной



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version