计算python代码和db运行时间的middleware
如果一个网页访问速度较慢或并发量较少时,我们需要我定位时间都花在哪里,下面是一个middleware来计算python代码和数据库运行时间:python 代码
[*]from datetime import datetime
[*]import os
[*]import time
[*]
[*]from django.conf import settings
[*]from django.db import connection
[*]from django.template import Template, Context
[*]
[*]class TimeMiddleware(object):
[*] def process_request(self, request):
[*] request.META['page_render_start'] = time.time()
[*] return None
[*]
[*] def process_response(self, request, response):
[*] t = Template(''' {{ stat }}
[*] ''')
[*] stat_fmt = 'Total: %.2f, Python: %.2f, DB: %.2f, Queries: %d'
[*] delta = datetime.now() - datetime.fromtimestamp(request.META.get('page_render_start'))
[*] total = delta.seconds + delta.microseconds / 1000000.0
[*] db = 0
[*] for query in connection.queries:
[*] db += float(query['time'])
[*] stat = stat_fmt % (total, total - db, db, len(connection.queries))
[*] print stat
[*] return response
讲上面代码放入一个python文件,然后在项目的settings中注册这个middleware,你就可以知道消耗时间的地方。
页:
[1]