Python 如何在CherryPy中计时web请求?
我想知道CherryPy在收到请求时返回页面需要多长时间。我该怎么办呢?你可以写一个装饰师:Python 如何在CherryPy中计时web请求?,python,cherrypy,Python,Cherrypy,我想知道CherryPy在收到请求时返回页面需要多长时间。我该怎么办呢?你可以写一个装饰师: import datetime import cherrypy def request_timer(f, *args, **kwargs): def _request_time(f, *args, **kwargs): begin = datetime.datetime.now() response = f(*args, **kwargs) en
import datetime
import cherrypy
def request_timer(f, *args, **kwargs):
def _request_time(f, *args, **kwargs):
begin = datetime.datetime.now()
response = f(*args, **kwargs)
end = datetime.datetime.now()
print cherrypy.log('time took for request %s' % (end - begin))
return response
return _request_time(f, *args, **kwargs)
class Root(object):
@request_timer
def index(*args, **kwargs):
pass
index.exposed = True
日志消息将转到屏幕或错误日志文件,具体取决于您的设置。这取决于您想要测量的确切内容。如果只想计算页面处理程序逻辑的时间,请使用Y.H.Wong发布的代码。如果您想测量客户看到的总时间,请使用以下方法:
按照我对这段代码的理解,它是公开方法执行时间的倍。我想从CherryPy服务器接收请求开始计时,直到它发送响应为止。我目前正在研究CherryPy源代码wsgiserver下的
HTTPConnection
类的communicate()
方法。这也是我计划使用的方法之一。我实际上是想看看请求在堆栈的每个部分(网络、CherryPy、Cheetah、db等)中花费了多长时间
$ python myproject.py &
$ ab -n 1000 -c 10 http://localhost:8080/myapp