I ' m адаптировать приложение, которое интенсивно использует генераторы для получения своих результатов, для предоставления веб-интерфейса web.py.
До сих пор я мог заключить вызов для цикла for и операторов, производящих вывод, в функцию и вызов что с использованием cProfile.run ()
или runctx ()
. Концептуально:
def output():
for value in generator():
print(value)
cProfile.run('output()')
В web.py мне нужно обернуть его следующим образом, так как я хочу немедленно выводить результаты потенциально длительных вычислений на каждом шаге итерации, используя yield
:
class index:
def GET(self):
for value in generator():
yield make_pretty_html(value)
Is есть ли способ профилировать все вызовы генератора, как в первом примере, когда он используется, как во втором?
Можете ли вы просто использовать time.time() для профилирования интересующих вас частей? Просто получите текущее время и вычтите из последнего измерения.