从调试结果来看,我可以看到我的网站浏览器时间确实很长。 基本上我为博客表创建了13000个项目。似乎不需要很长时间来执行sql查询。
The debug result如何分析django调试工具栏的结果?
我的问题是我怎么能确定从调试结果的瓶颈。为什么它加载速度如此之慢,需要接近20秒。我如何减少domContentLoadedEvent和domloading Time。
谢谢。
从调试结果来看,我可以看到我的网站浏览器时间确实很长。 基本上我为博客表创建了13000个项目。似乎不需要很长时间来执行sql查询。
The debug result如何分析django调试工具栏的结果?
我的问题是我怎么能确定从调试结果的瓶颈。为什么它加载速度如此之慢,需要接近20秒。我如何减少domContentLoadedEvent和domloading Time。
谢谢。
你会需要更细粒度的工具分析底层Python代码,调试工具栏只盯着客户端上的事件。
我会首先检查一下,看看你是否在Django模板中进行了很多循环 - 通过将一些工作转移到Python中,你通常可以大幅加快它的速度。
如果您想要了解瓶颈位置的详细信息,您可以尝试在视图上运行cProfile。
我破解了一个方法,您可以将cProfile修补为views.py
,以在Django开发环境中打印出一个快速而脏的配置文件。替换的文件名,功能,和args根据需要:
步骤1:重命名my_view
到my_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?
下面是使用调试工具栏直接回答您的问题:启用性能分析面板。
注意:如果您没有字典中的默认面板,将会删除其他面板,如示例中所示。
settings.py
DEBUG_TOOLBAR_PANELS = {
'debug_toolbar.panels.profiling.ProfilingPanel',
}
也许我应该使用分页,以避免使所有的对象? – john