如何分析django调试工具栏的结果?

时间:2017-09-26 09:15:04

标签: django web django-templates django-debug-toolbar

从调试结果来看,我可以看到我的网站浏览器时间真的很长。 基本上我为博客表创建了13000个项目。似乎不需要很长时间来进行SQL查询。
The debug result

  

我的问题是如何从调试结果中识别出瓶颈。为什么它加载如此缓慢,需要近20秒。如何减少domContentLoadedEvent和domloading Time   感谢。

2 个答案:

答案 0 :(得分:1)

您需要更精细的工具来分析底层的Python代码,调试工具栏只是在客户端查看事件。

我首先要检查你是否在Django模板中进行了大量的循环 - 通常可以通过将一些工作转移到Python中来显着加快速度。

如果您想了解瓶颈所在的详细信息,可以尝试在视图上运行cProfile

我修改了一种方法,你可以将cProfile修补到views.py,以便在Django开发环境中打印出快速而肮脏的分析。根据需要替换文件名,函数和参数:

第1步:将my_view重命名为my_view_renamed

步骤2:创建运行cProfile的my_view的新定义(参见代码示例)

第3步:运行开发服务器(manage.py runserver)并访问访问您视图的网址

import cProfile
import pstats

def my_view(request, arg1)
    FILENAME = '/Users/me/Desktop/temp.stats'
    cProfile.runctx(
        'my_view_renamed(request, arg1)',
        globals(),
        {'request': request, 'arg1': arg1},
        filename=FILENAME,
    )
    stats = pstats.Stats(FILENAME)
    stats.sort_stats('cumulative')
    stats.print_stats()

这是一个很好的相关问题,有一些更一般的信息: How can you profile a script?

答案 1 :(得分:0)

以下是使用调试工具栏直接回答您的问题:启用分析面板。

注意:如果您没有字典中的默认面板,则会删除其他面板,如示例所示。

Docs

settings.py

DEBUG_TOOLBAR_PANELS = {
    'debug_toolbar.panels.profiling.ProfilingPanel',
}