如何分析 Django 中间件本身?

How to profile Django middleware itself?

分析 Django 视图的方法有很多种。例如 custom middleware or this custom tab 用于 Django 调试工具栏。

对django中间件本身进行剖析的方法是什么?

您可以封装所有其他中间件。在最外层的中间件中,在 process_request 中,开始分析。我通常将 profile.enable()profile.disable()cProfile.Profile 实例一起使用,这允许我在任意点开始和停止分析,而 profile.runcall() 要求您调用实际函数,这不是中间件在 Django 中的工作方式。

在最里面的中间件中,将 process_view() 定义为简单的 return HttpResponse('')。这样,视图本身不会被调用,也不会包含在您的配置文件中。

然后,再次在最外层的中间件中,定义 process_response() 以停止分析并将分析结果输出到浏览器或文件。

如果您想从分析结果中删除中间件以外的所有内容,您可以只创建一个空视图,returns 一个空白的 HttpResponse。