如何分析 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。
分析 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。