Измерение времени выполнения представлений в промежуточном программном обеспечении Django - хорошая идея?

Я хочу проверить время выполнения представлений на моем сайте. Это можно сделать с помощью декораторов, но, поскольку у меня есть десятки представлений, я подумал о том, чтобы сделать это в промежуточном программном обеспечении, сохраняя начальное время в словаре с запросом в качестве ключа (см. Ниже), но меня беспокоят сделанные мной предположения. (см. ниже):

class SlowWarningMiddleware:

    def __init__(self):
        self.time_tracking = {}

    def process_view(self, request, view_func, view_args, view_kwargs):
        self.time_tracking[request] = time.time() 

    def process_response(self, request, response):
        if request not in self.time_tracking:
            return response
        delta = time.time() - self.time_tracking[request]

    def process_exception(self, request, exception):
        if request not in self.time_tracking:
            return
        delta = time.time() - self.time_tracking[request]

этот код предполагает две точки:

  1. Один и тот же экземпляр промежуточного программного обеспечения обрабатывает логику предварительного и последующего просмотра.
  2. Экземпляр запроса остается тем же самым экземпляром предварительного просмотра и последующего просмотра. .

безопасны ли эти предположения? Является ли это промежуточное ПО хорошей идеей?

7
задан Сыч 8 August 2011 в 12:13
поделиться