分析Django?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我的Django应用程序在生产过程中变得非常缓慢。很明显,这是由于一些复杂的或无索引的查询。

有什么Django-ish方法来分析我的应用程序吗?

提问于
用户回答回答于

尝试Django Debug Toolbar。它会显示在每个页面上执行的查询以及它们占用了多少时间。这是一个非常有用,功能强大且易于使用的工具。

另外,从文档Database access optimization中阅读有关有关Django性能的建议。

用户回答回答于

我使用的是中间件方法,即每个用户都可以切换存储在会话中的“分析”标志,如果我的分析中间件注意到已经设置了标志,则使用Python的hotshot模块如下:

def process_view(self, request, view_func, view_args, view_kwargs):

     # setup things here, along with: settings.DEBUG=True 
     # to get a SQL dump in connection.queries

     profiler = hotshot.Profile(fname)
     response = profiler.runcall(view_func, request, *view_args, **view_kwargs)
     profiler.close()

     # process results

     return response

django-entensions有一个很好的内置分析:

$ mkdir /tmp/my-profile-data
$ ./manage.py runprofileserver --kcachegrind --prof-path=/tmp/my-profile-data

扫码关注云+社区

领取腾讯云代金券