【发布时间】:2016-04-06 15:01:24
【问题描述】:
我正在尝试测量查询我的 Django 视图之一所需的时间。它基本上是使用不同的 LIMIT 子句(sqlite)进行 SELECT。下面是我得到的时序,先直接调用view函数,然后用urllib作为GET请求调用。
LIMIT view(s.) request(s.)
25 4.5 12.6
100 1.6 2.1
400 3.5 3.3
800 4.4 4.7
1600 7.6 8.4
...
为什么第一次时间这么长?是否有一些明显的原因,比如我无法禁用的缓存,或者数据库访问固有的?
我没有使用cache_page,我尝试完全禁用缓存,遵循我在网上找到的一些建议:
settings.CACHE_BACKEND = 'dummy:///'
settings.CACHES = {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache',}}
如果我不重新启动服务器并再次运行测试,12s(第一次请求调用)按预期变为 1s,但 4.5s(第一次查看调用)保持不变。
【问题讨论】:
-
安装github.com/django-debug-toolbar/django-debug-toolbar可以尝试了解耗时操作。
-
如果我在 2 小时的尝试后设法让它工作... :(( 它不喜欢 Apache 代理设置。
标签: django caching benchmarking