2017-09-26 29 views
0

从调试结果来看,我可以看到我的网站浏览器时间确实很长。 基本上我为博客表创建了13000个项目。似乎不需要很长时间来执行sql查询。
The debug result如何分析django调试工具栏的结果?

我的问题是我怎么能确定从调试结果的瓶颈。为什么它加载速度如此之慢,需要接近20秒。我如何减少domContentLoadedEvent和domloading Time。
谢谢。


+0

也许我应该使用分页,以避免使所有的对象? – john

回答

0

你会需要更细粒度的工具分析底层Python代码,调试工具栏只盯着客户端上的事件。

我会首先检查一下,看看你是否在Django模板中进行了很多循环 - 通过将一些工作转移到Python中,你通常可以大幅加快它的速度。

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

我破解了一个方法,您可以将cProfile修补为views.py,以在Django开发环境中打印出一个快速而脏的配置文件。替换的文件名,功能,和args根据需要:

步骤1:重命名my_viewmy_view_renamed

步骤2:创建的my_view新定义运行CPROFILE(见代码样品)

步骤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?

0

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

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

Docs

settings.py

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