我有严重的执行问题与我的模板。经过一些测试后,我发现渲染中最慢的部分是缩略图,由sorl-thumbnail生成。 下面是我的模板已发行部分:sorl-thumbnail - 缓慢模板渲染
{% for listing in listings %}
<li class="pic_view">
<ul>
<li class="picture">
<a href="{% url 'listing' listing.id listing.title %}">
{% thumbnail listing.get_picture "240x143" crop="center" as im %}
<img src="{{ im.url }}">
{% empty %}
tc
{% endthumbnail %}
<div class="overlay"></div>
</a>
</li>
<li class="artist">
<a href="{% url 'profile_artist' listing.artist_id listing.artist.user.first_name %}">
{% thumbnail listing.artist.get_avatar "60x60" crop="center" as im %}
<img src="{{ im.url }}">
{% empty %}
tc
{% endthumbnail %}
</a>
</li>
</ul>
</li>
{% endfor %}
目前,我有大约6清单及以下的测量时间进行渲染:
- 8512 ms on first rendering
- 4680 ms on reload
- 112 ms when thumbnail tags are removed
能否请你给我在这一点上一些建议。上面的数字是用Debug=True
测量的,但是当标志为False时没有区别。也因此,以Django
文件,我已经包括以下TEMPLATE_LOADERS
:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
('django.template.loaders.cached.Loader', (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)),
)
你使用什么类型的后端?有不同的选项,但我相信memcached或redis应该比使用数据库更快,特别是如果你有很多条目。 – petkostas 2014-09-01 09:38:49