las*_*hla 15 django optimization django-templates
说,我有一个带照片库的页面.每个缩略图都有例如照片,国家,作者等.我使用模板标签(加载指定的模板)渲染这些项目/小部件 - 由于DRY(我在页面上的不同位置单独使用这些项目/小部件),它就是这样.
它很慢.
我使用django-debug-toolbar执行了一些分析:
SQL Queries: default 84.81 ms (147 queries)
Run Code Online (Sandbox Code Playgroud)
但:
Total CPU time: 5768.360 msec
Run Code Online (Sandbox Code Playgroud)
等待的时间太长了.
经过一番分析后发现,主要罪魁祸首是模板化.
当我想显示例如150张照片时,通过模板呈现600个相关项目/小部件.这意味着600次I/O操作甚至更多.将这些小部件移动到主模板可以解决问题,但不会保留DRY.
所以我的问题是如何避免这种行为?干,慢,干,快?我宁愿干得快......
las*_*hla 11
经过几个小时的剖析和搜索......
感谢您的帮助,但在这种情况下,在我看来,目前为止最好的解决方案是使用模板片段缓存:
我尝试了它,并获得了70-80%的速度性能!
{% load cache %}
{% cache 3600 mywidget_id %}
.. rendered mywidget is cached ..
{% endcache %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5989 次 |
| 最近记录: |