如何使用 webapp2 测量页面生成时间?
How to measure page generation time with webapp2?
我想显示生成页面所需的时间。我想结束时间的最佳位置是在基本处理程序的渲染函数中:
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
time_passed = datetime.now() - start_time
return t.render(params, time_passed=time_passed)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
但是,我不确定将开始计时器放在哪里。我不想将它插入每个单独的处理程序中...
一个地方可能是处理程序的调度函数,例如保存 webapp2 会话(如果您使用它们)的地方,如下所示:
def MyHandler(webapp2.RequestHandler)
...
def dispatch(self):
start_time = time.time()
try:
super(MyHandler, self).dispatch()
finally:
elapsed_time = time.time() - start_time
self.session_store.save_sessions(self.response)
但它会测量所有处理程序的持续时间,而不仅仅是那些呈现和显示响应页面的处理程序。
我想显示生成页面所需的时间。我想结束时间的最佳位置是在基本处理程序的渲染函数中:
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
time_passed = datetime.now() - start_time
return t.render(params, time_passed=time_passed)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
但是,我不确定将开始计时器放在哪里。我不想将它插入每个单独的处理程序中...
一个地方可能是处理程序的调度函数,例如保存 webapp2 会话(如果您使用它们)的地方,如下所示:
def MyHandler(webapp2.RequestHandler)
...
def dispatch(self):
start_time = time.time()
try:
super(MyHandler, self).dispatch()
finally:
elapsed_time = time.time() - start_time
self.session_store.save_sessions(self.response)
但它会测量所有处理程序的持续时间,而不仅仅是那些呈现和显示响应页面的处理程序。