[CPyUG] django模板中for循环的效率,好像非常差

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG] django模板中for循环的效率,好像非常差

yrh-2
新近学习django,做了公司的一个小项目,不知为什么,部分页面速度非常慢,无论怎么改速度总是提不上去,仔细检查速度慢的页面,发现速度慢的页面都是模板里循环比较多的,于是试着改了一下,在views里,直接生成javascript数组所需字符串,然后传到模板的javascript的数组里,由javascript来生成页面,竟然速度飞速提高,测试了了以下,速度竟然提高差不多5倍。

django模板里for循环的速度比javascript还慢么?各位大大怎么解决这个问题的?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

金浩
是不是你循环的是queryset对象啊,queryset是lazy的,你在模板中迭代的时候才真正查数据库,所以看上去模板渲染很慢。

在 2011年3月23日 上午9:23,yrh <[hidden email]>写道:
新近学习django,做了公司的一个小项目,不知为什么,部分页面速度非常慢,无论怎么改速度总是提不上去,仔细检查速度慢的页面,发现速度慢的页面都是模板里循环比较多的,于是试着改了一下,在views里,直接生成javascript数组所需字符串,然后传到模板的javascript的数组里,由javascript来生成页面,竟然速度飞速提高,测试了了以下,速度竟然提高差不多5倍。

django模板里for循环的速度比javascript还慢么?各位大大怎么解决这个问题的?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

yrh-2
是啊,不过在views里把数据转为tuple以后,再传到模板里,数据改善不明显,1000个循环的样子,在开发环境中生成页面差不多要5秒。
我直接在views里循环,生成字符串再传到javascript里,几乎感觉不到页面延迟。


在 2011年3月23日 上午9:43,金浩 <[hidden email]>写道:
是不是你循环的是queryset对象啊,queryset是lazy的,你在模板中迭代的时候才真正查数据库,所以看上去模板渲染很慢。

在 2011年3月23日 上午9:23,yrh <[hidden email]>写道:
新近学习django,做了公司的一个小项目,不知为什么,部分页面速度非常慢,无论怎么改速度总是提不上去,仔细检查速度慢的页面,发现速度慢的页面都是模板里循环比较多的,于是试着改了一下,在views里,直接生成javascript数组所需字符串,然后传到模板的javascript的数组里,由javascript来生成页面,竟然速度飞速提高,测试了了以下,速度竟然提高差不多5倍。

django模板里for循环的速度比javascript还慢么?各位大大怎么解决这个问题的?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp



--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

twinsant
In reply to this post by yrh-2
你在View里直接生成数组所需字串,然后用django for loop,对比。

2011/3/23 yrh <[hidden email]>
新近学习django,做了公司的一个小项目,不知为什么,部分页面速度非常慢,无论怎么改速度总是提不上去,仔细检查速度慢的页面,发现速度慢的页面都是模板里循环比较多的,于是试着改了一下,在views里,直接生成javascript数组所需字符串,然后传到模板的javascript的数组里,由javascript来生成页面,竟然速度飞速提高,测试了了以下,速度竟然提高差不多5倍。

django模板里for循环的速度比javascript还慢么?各位大大怎么解决这个问题的?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

vicalloy
不是循环的问题,是循环里的操作费时。
django模板的性能确实不是太好。

2011/3/23 twinsant <[hidden email]>:
> 你在View里直接生成数组所需字串,然后用django for loop,对比。

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

bluetent
django有个mako的中间件插件,可以试试。
我们在实际工作中用到mako,渲染效率确实比django自己的高些。

2011/3/23 vicalloy <[hidden email]>
不是循环的问题,是循环里的操作费时。
django模板的性能确实不是太好。

2011/3/23 twinsant <[hidden email]>:
> 你在View里直接生成数组所需字串,然后用django for loop,对比。

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp



--
Welcome to www.rainway.org!

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

@@-2
效率高的话应该是jinja2吧。 不过我没试过  目前还没觉得django的模板慢

2011/3/23 bluetent <[hidden email]>:

> django有个mako的中间件插件,可以试试。
> 我们在实际工作中用到mako,渲染效率确实比django自己的高些。
>
> 2011/3/23 vicalloy <[hidden email]>
>>
>> 不是循环的问题,是循环里的操作费时。
>> django模板的性能确实不是太好。
>>
>> 2011/3/23 twinsant <[hidden email]>:
>> > 你在View里直接生成数组所需字串,然后用django for loop,对比。
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>
>
>
> --
> Welcome to www.rainway.org!
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

yrh-2
上网搜索了以下,有人说django1.3模板效率提高了很多,下了个1.3试了试,用page speed测试,速度提升非常惊人!看来django1.3的模板改进了不少!!


在 2011年3月23日 下午4:10,@@ <[hidden email]>写道:
效率高的话应该是jinja2吧。 不过我没试过  目前还没觉得django的模板慢

2011/3/23 bluetent <[hidden email]>:
> django有个mako的中间件插件,可以试试。
> 我们在实际工作中用到mako,渲染效率确实比django自己的高些。
>
> 2011/3/23 vicalloy <[hidden email]>
>>
>> 不是循环的问题,是循环里的操作费时。
>> django模板的性能确实不是太好。
>>
>> 2011/3/23 twinsant <[hidden email]>:
>> > 你在View里直接生成数组所需字串,然后用django for loop,对比。
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>
>
>
> --
> Welcome to www.rainway.org!
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] django模板中for循环的效率,好像非常差

Zhang Jiawei
应该是原来做的太差。

在 2011年3月23日 下午5:08,yrh <[hidden email]> 写道:

> 上网搜索了以下,有人说django1.3模板效率提高了很多,下了个1.3试了试,用page
> speed测试,速度提升非常惊人!看来django1.3的模板改进了不少!!
>
>
> 在 2011年3月23日 下午4:10,@@ <[hidden email]>写道:
>>
>> 效率高的话应该是jinja2吧。 不过我没试过  目前还没觉得django的模板慢
>>
>> 2011/3/23 bluetent <[hidden email]>:
>> > django有个mako的中间件插件,可以试试。
>> > 我们在实际工作中用到mako,渲染效率确实比django自己的高些。
>> >
>> > 2011/3/23 vicalloy <[hidden email]>
>> >>
>> >> 不是循环的问题,是循环里的操作费时。
>> >> django模板的性能确实不是太好。
>> >>
>> >> 2011/3/23 twinsant <[hidden email]>:
>> >> > 你在View里直接生成数组所需字串,然后用django for loop,对比。
>> >>
>> >> --
>> >> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> >> 发言: [hidden email]
>> >> 退订: [hidden email] (向此发空信即退!)
>> >> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> >> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> >
>> >
>> >
>> > --
>> > Welcome to www.rainway.org!
>> >
>> > --
>> > 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> > 发言: [hidden email]
>> > 退订: [hidden email] (向此发空信即退!)
>> > 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> > 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> >
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp