我一直使用Python的timeit
库为我的小Python程序计时。
现在我正在开发一个Django应用程序,我想知道如何计算我的Django函数,尤其是查询。
例如,我的views.py中有一个def index(request)
,当我加载索引页面时会有很多东西。
如何在不改变现有功能的情况下使用timeit
计时这个特定功能?
答案 0 :(得分:16)
如果您的django项目处于调试状态,您可以使用以下命令查看数据库查询(和时间):
>>> from django.db import connection
>>> connection.queries
我知道这不会满足您对个人资料的需求,但希望它有助于查询部分!
答案 1 :(得分:5)
答案 2 :(得分:1)
获取最佳方法是使用Debug Toolbar,您还将获得一些用于查询优化的附加功能,这些功能将帮助您优化数据库查询。
这是另一种解决方案,您可以使用connect.queries
。这将返回在reset_queries()
命令之前执行的命令的SQL命令。您可以使用reset_queries()
在获得上一个查询的时间后重置reset_queries。并非强制使用>>> from django.db import connection, reset_queries
>>> from appname.models import Device
>>> devices = Device.objects.all()
>>> connection.queries
>>> reset_queries()
。
假设您有一个名为设备的模型。您可以像这样测量查询时间:
{{1}}
答案 3 :(得分:-2)
您还可以使用命令行Django shell。
%time SomeModel.objects.count()
它显示Wall time
的毫秒数。
除了SomeModel
外,没有其他内容。