django url标签性能

zxy*_*too 3 django performance

我试图按照RedditStyleVoting指令将django-voting集成到我的项目中.

在我的urls.py中,我做了类似这样的事情:

    url(r'^sections/(?P<object_id>\d+)/(?P<direction>up|down|clear)vote/?$',
    vote_on_object,
    dict(
        model=Section,
        template_object_name='section',
        template_name='script/section_confirm_vote.html',
        allow_xmlhttprequest=True
        ),
    name="section_vote",
Run Code Online (Sandbox Code Playgroud)

然后,在我的模板中:

    {% vote_by_user user on section as vote %}
{% score_for_object section as score %}

<form class="sectionvote" id="sectionup{{ section.id }}"{% if vote and vote.is_upvote %} action="{% url section_vote object_id=section.id, direction="clear" %}"{% else %} action="{% url section_vote object_id=section.id, direction="up" %}"{% endif %} method="POST">
<input type="image" id="sectionuparrow{{ section.id }}" src="{{ MEDIA_URL }}/aup{% if vote and vote.is_upvote %}mod{% else %}grey{% endif %}.png"></form>

{{ score.score|default:0 }}

<form class="sectionvote" id="sectiondown{{ section.id }}"{% if vote and vote.is_downvote %} action="{% url section_vote object_id=section.id, direction="clear" %}"{% else %} action="{% url section_vote object_id=section.id, direction="down" %}"{% endif %} method="POST"> 
<input type="image" id="sectiondownarrow{{ section.id }}" src="{{ MEDIA_URL }}/adown{% if vote and vote.is_downvote %}mod{% else %}grey{% endif %}.png"></form>
Run Code Online (Sandbox Code Playgroud)

加载页面需要花费超过1.3秒,但通过硬编码就像这样:

<form class="sectionvote" id="sectionup{{ section.id }}"{% if vote and vote.is_upvote %} action="sections/{{section.id}}/clearvote/"{% else %} action="sections/{{section.id}}/clearvote/"{% endif %} method="POST">
Run Code Online (Sandbox Code Playgroud)

<form class="sectionvote" id="sectiondown{{ section.id }}"{% if vote and vote.is_downvote %} action="sections/{{section.id}}/clearvote/"{% else %} action="sections/{{section.id}}/downvote/"{% endif %} method="POST"> 
Run Code Online (Sandbox Code Playgroud)

我有50ms.只是避免使用url标记解析我的性能提升了20倍以上.有什么我做错了吗?如果没有,那么这里最好的做法是,我们应该采用哪种right方式或快速方式?

Dan*_*man 5

如果您正在使用开发版本,最近出现了回归,这大大增加了反向查找URL所需的时间 - 请参阅此处的票证.它计划在最终版本1.2之前修复.