Django 1.11中表单渲染的性能不佳

Joh*_*ann 6 html forms django performance python-2.7

我的网站有一个带有高级搜索小部件的导航栏(在搜索栏旁边),可在每个页面上呈现.对于每个请求,a context_processor创建表单,以便在导航栏中的该页面上可用.这个表格有十几个选项,总共有几百个选项.这些选项中的大多数用于货币和国家选择,以及大约80个其他选项."商店"有一个更大的列表,但它是通过AJAX加载的,因此它不应该是一个因素.

Django 1.8的性能很好,但在升级到1.11(Pyton 2.7.15)之后,我注意到NewRelic现在正在使用超过500毫秒的最常见请求之间:

  • 渲染/ Django的/表格/部件/ select_option.html
  • 渲染/ Django的/表格/部件/ select.html
  • 渲染/ Django的/表格/部件/ attrs.html

在此输入图像描述

这似乎与1.11对基于模板的Widget渲染(docs)的更改有关,但是我能找到的唯一可以找到相关问题的页面是关于我不在生产中运行的Django Toolbar.

我已经使用了缓存模板加载器(现在是默认设置),但我不知道这是否有帮助.我无法轻松缓存此表单,因为您可以在代码中看到,我根据请求设置了许多默认值.

为什么我的表格在这种变化中遭受如此严重的损失?消除两个较大的选择有所帮助,但肯定有几百个选项不应该花这么长时间来呈现,所以在我看来存在一个潜在的问题,数量仅仅是加剧.

以下是完整表单和html代码的链接.(稍后当我们确定问题时,我会在问题中包含片段,供将来的读者阅读).

Lui*_*ues 0

在升级之前,您是否有相同请求的过去数据?如果您使用的是入门计划,也许您只有 7 天的数据:单击时间选择并将其设置为该日期,然后您可以将过去的信息与当前的信息进行比较,以识别瓶颈。