2024-05-17 05:04:23 发布
网友
我的Django应用程序速度太慢了,我想知道需要花些什么时间:
我试过Django-debug-toolbar,但找不到一个可以让我中断加载时间的面板。
Django-debug-toolbar
我的要求:
能做到吗?[什么小组?]
还有其他的django应用可以做到这一点吗?
我建议您编写一些集成测试,或者至少使用内置的测试客户机来自动化请求,并在视图中放置许多调试语句
Django有一个内置的测试客户端:
from django.test.client import Client c = Client() response = c.post('/slow_url/')
然后在你看来:
def slow_url(request): start = time.time() print 'Started db query' result = SomeComplexModel.objects.all() print 'Finished db query, took ', time.time() - start return render('some_complex_template.html', {'result': result})
自动化发出请求的过程,并在进行小的更改时能够一次又一次地复制请求,这是改进代码的方法。如果测量运行每个函数所需的时间,就可以计算出CPU时间。你不会花很长时间去钻研那些实际上在消耗资源的部分。
终于找到了一种方法来分析我的django webapp:
下面的两个django代码片段提供了middleware,它对整个流进行了概要分析,并在 请求在GET keys中有prof:
middleware
GET keys
prof
http://djangosnippets.org/snippets/727/[使用cProfile]
http://djangosnippets.org/snippets/186/[使用hotshot]
简单明了的剖析-拯救了我的一天!
django-debug-toolbar
默认情况下,^{}2.0在设置DEBUG_TOOLBAR_PANELS中包含^{}。您可以通过勾选工具栏中的“分析”复选框并刷新页面来查看此分析信息。
DEBUG_TOOLBAR_PANELS
您可以尝试django调试工具栏的分析面板(确保使用github中的应用程序最新版本)。在settings.py中像这样启用面板:
DEBUG_TOOLBAR_PANELS = ( 'debug_toolbar.panels.version.VersionDebugPanel', 'debug_toolbar.panels.timer.TimerDebugPanel', 'debug_toolbar.panels.profiling.ProfilingDebugPanel', )
这个面板的存在并没有在django调试工具栏的自述文件中记录下来;这就是我在这里首先回答的原因。
我建议您编写一些集成测试,或者至少使用内置的测试客户机来自动化请求,并在视图中放置许多调试语句
Django有一个内置的测试客户端:
然后在你看来:
自动化发出请求的过程,并在进行小的更改时能够一次又一次地复制请求,这是改进代码的方法。如果测量运行每个函数所需的时间,就可以计算出CPU时间。你不会花很长时间去钻研那些实际上在消耗资源的部分。
终于找到了一种方法来分析我的django webapp:
下面的两个django代码片段提供了
middleware
,它对整个流进行了概要分析,并在 请求在GET keys
中有prof
:http://djangosnippets.org/snippets/727/[使用cProfile]
http://djangosnippets.org/snippets/186/[使用hotshot]
简单明了的剖析-拯救了我的一天!
django-debug-toolbar
2.0版默认情况下,^{} 2.0在设置} 。您可以通过勾选工具栏中的“分析”复选框并刷新页面来查看此分析信息。
DEBUG_TOOLBAR_PANELS
中包含^{
的旧版本django-debug-toolbar
:您可以尝试django调试工具栏的分析面板(确保使用github中的应用程序最新版本)。在settings.py中像这样启用面板:
这个面板的存在并没有在django调试工具栏的自述文件中记录下来;这就是我在这里首先回答的原因。
相关问题 更多 >
编程相关推荐