Python论坛  - 讨论区

标题:[python-chinese] Django很可能存在性能问题

2007年12月06日 星期四 19:08

vicalloy zbirder在gmail.com
星期四 十二月 6 19:08:49 HKT 2007

前言
使用Django开发WEB2.0的同学注意了,Django很可能存在性能问题,而且是灾难性的。(和算命先生一样,先吓唬吓唬人,哗众取宠)

问题
WEB2.0提倡的是用户交互,因此WEB2.0站点不可能和传统站点一样,将大部分的页面都静态化。在频繁的交互中,数据库的访问必不可少。但Django的O/R
Map实在让人没底。
Django的O/R Map使用方便,但基本是个黑盒,难以进行优化。也许有人说优化是以后的事。但很多时候在最开始没有留下优化的余地,到真正需要优化的时候将苦不堪言。
对数据库的优化主要有减少数据库的访问和sql优化。将少数据库的访问可以通过cache等方式实现,这部分应当都一样,没有太多可以讨论的。对于SQL的优化,Django的O/R
Map实在封得太多,似乎也不存在太多优化余地,只能将O/R Map换成SQL。
但O/R Map在一定程度上是一种设计思想,将一个已经上线的O/R Map换成SQL并不会是一件很轻松的事。
分表也是常用的数据库优化方式,像Hibernate还可以使用Native Sql实现对分表的支持,但Django就不行。这时候有得换成Sql。
等改完后,原先优美的代码都已经变得惨不忍睹了。

相关数据
Django的应用中一直没有出现过什么大流量的网站。Django的普及程度可以说明一定问题,但或许Django本身就不适合做这个。
由于我并没有什么大流量的django站点,因此我的数据只能从网上找了。PS:我的小站,使用的是Bluehost主机中最便宜的一款,虽然没什么流量,但我进管理平台的时候几乎100%的500错误。

网站名称			使用技术			Alexa排名/收录量/PageView	内存/ CPU
Delphi盒子			ASP/SQLServer		21.05w   /3.57w /3w			1GRAM/NA
好看簿				Django				16.9w    /7.05w /NA			3服务器
JavaEye				ROR					2w       /24.6w/15w			4G
豆瓣(2006数据)	Quixote				NA       /NA   /30w			NA

备注:
好看簿
虽然具体流量不清楚,但参考Alexa的排名,流量应当在10w以下。
这个最早是有木头那听来的,知道是Django做的。今天在网上看到好看簿的介绍,说换了3台服务器。
对于创业期的网站来说,如果不是处于性能原有,应当不会如此奢侈。
因此猜测在单服务器时候,负载已经不太低了。

Delphi盒子
这个不属于WEB2.0页面交互比较少,因此数据库访问应当不会太过频繁。
仅仅做参考。

JavaEye
这个大家应当都比较熟悉。关于JavaEye的流量站长大人自己说得最清楚了。
HP DL145 G1,两路AMD Operton 2GHz CPU, 4G DDR RAM, 73G SCSI 15k Disk
Linux Kernel-2.6.7,lighttpd-1.4.13,MySQL-5.0,ruby-1.8.4(GC patch)
由于网站的访问量大部分集中在早上9.00到晚上9.00这12个小时的范围内。因此可以大致粗略的认为12小时处理12万动态请求,平均每小时处理1万动态请求,也就是说平均每秒处理3个动态请求。
服务器的平均CPU使用率在繁忙的时候,大概15%左右,MySQL数据库繁忙的时候平均每秒发送超过100条SQL语句,24小时平均每秒发送45条SQL语句。硬盘IO非常少

豆瓣
WEB2.0的代表,通是使用python开发。阿北在豆瓣的早期有谈论过豆瓣的性能问题。
现在cpu使用15%左右。每天30万页访问(白天每秒10次的样子),100%是动态页面。服务器的访问响应时间平均仍在0.05秒以下。
加上所有的封面照片,是有几十个G。不过这些不在数据库里。数据库现在有5G, 最多的是书的信息(40多万条)和用户收藏和评价(50多万条)。这个不包括冗余。
mysql用了innodb和myiam. 读/写频繁的用innodb, 读多写少、写多读少(比如log)或者需要full text
index的用myiam. replication/cluster还没有,不过很快会有。现在每晚用mysqldump做backup.

-- 
Blog http://vicalloy.spaces.live.com/
My googlepage http://vicalloy.googlepages.com/
OldPhoto http://www.lzpian.com/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 19:44

limodou limodou在gmail.com
星期四 十二月 6 19:44:19 HKT 2007

本人对性能没有什么研究,也没有比较过。不过就ORM来说,使用豆瓣可能并不合适,因为它并没有使用什么通用的ORM,好象是自已做了个简单的封装,阿北的确对性能是有要求,而且有些与某个数据库相关的东西,使用ORM也不一定可以实现。而且比较的数据感觉有以下问题:

是想比较ORM,还是整体性能,比较何种框架还是无框架,admin的问题与ORM有无必然联系?

如果只是比较ORM建议可以比较SQLObject, SQLAlchemy, Django的
框架的话建议比较django, turbogears, pylons相同级别的
admin的问题我是没有遇到过

建议把工作再做细些。而且的确在许多时候的确不用考虑性能,我们做的应用不一定全都是百万级别的用户,这时开发效率要远远高于运行效率。是否采用django原因很多,性能只是其中一项,但不是唯一一项。是否可以比较下沈大侠的框架呢?

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 21:14

@@ askfor在gmail.com
星期四 十二月 6 21:14:44 HKT 2007

ѧÉúʱ´úÓÃxoops <http://www.xoops.org>
×ö¹ýÒ»¸öÕ¾¡£×î¸ß3ÔÂÅÅÃû1w×óÓÒ¡£×î¸ßÈÕÅÅÃûµ½¹ý3000¶à£¬Æ½¾ùÈÕip2w×óÓÒ£¬pv²»¼ÇµÃÁË£¬ÒÔǰ²»Ôõô¹Ø×¢Õâ¸ö¡£¡£Ò»Ö±ÓõÄÐéÄâÖ÷»ú¡£
ÿ¸öÒ³ÃæqueryÊýÒ²²»ÉÙ£¬ËùÓÐÅäÖö¼ÊÇ´ÓÊý¾Ý¿âÀï¶ÁÈ¡£¬Ê×Ò³´ó¸ÅÊÇ50¶à£¨Ê±¼äÓеã¾ÃÁË£¬²»Ôõô¼ÇµÃÇå³þÁË£©ÆÕͨÂÛÌ³Ò³ÃæÒ²40¶à¸öquery¡£²»ÓÃcacheʱ·þÎñÆ÷Êܲ»ÁË£¬ÄÜÕ¼cpu
100%¡£ºóÀ´Ð޸ĹýһЩ´úÂ룬ÓÃÁËxoops´øµÄcacheϵͳ£¨Ò²¾ÍÊÇsmartyµÄcache£¬µ«ÊÇÄÜÖ±½ÓÅäÖã©£¬»ù±¾Ã»ÔÙ±»Í£¹ý¿Õ¼ä¡£

djangoÓõIJ»ÊǺÜÊìϤ£¬Ö»Ð´¹ýС³ÌÐò¶øÇÒҲûʵ¼ÊʹÓùý¡£²»¹ý¸Ð¾õÒ»¸öÒ³Ãæ³öÀ´µÄqueryÊýȷʵ²»ÉÙ£¬Ò»¸ö¼òµ¥µÄÒ³ÃæÒ²ÓÐ2¡«30¸ö²éѯ¡£ÂÛ̳ÕâÀàµÄÓ¦ÓÃÎÒÏë²»»áÑ¡Ôñdjango£¬µ«ÊÇÆÕͨµÄÍøÕ¾Ó¦ÓÃÎÒÏëdjango»¹ÊÇ¿ÉÒÔʤÈεġ£
ÆÕͨµÄÍøÕ¾Ò»°ã²»»á³öÏÖÊ®·Ö¸´ÔÓµÄÒµÎñÔËËãÂß¼­£¬Ò²²»´ó»á³öÏÖЧÂÊÊ®·ÖµÍϵÄsql£¨¼´Ê¹ÓÐÏàÐÅÒ²²»¶à£©£¬orm³öÀ´µÄsql»ù±¾ÊÇÄܽÓÊܵ쬼´Ê¹²»ÄܽÓÊÜ£¬ÐèÒªÐ޸ĵÄÓ¦¸ÃÒ²²»»áÌ«¶à¡£
ÓÅ»¯µÄ´óÍ·¸üÓ¦¸ÃÔÚcacheÉÏ¡£¾ÍËãÓкܺÄЧÂʵÄsql£¬Èç¹ûÊǼ¸·ÖÖÓÉõÖÁ¼¸Ð¡Ê±Ö´ÐÐÒ»´ÎÎÒ¾õµÃ¶¼ÄܽÓÊÜ£¬Ò²²»»áʹÄãµÄ·þÎñÆ÷downµô¡£
djangoµÄcacheϵͳҲÊDZȽÏÍêÉÆÁË£¬ÎÒÏëʹÓõõ±µÄ»°djangoÕ¾µÄЧÂÊÎÊÌâÖÁÉÙ²»»áÊÇÔÖÄÑÐԵģº£©

²»¹ý»¹Ï£ÍûdjangoµÄcacheÄÜ×öµ½ÕâЩ¹¦ÄÜ¡££¨Ò²ÐíÊDz»¹»Á˽⣬ÏÖÔÚÒѾ­¾ÍÄÜ×öµ½£©
1¡¢ÄÜÕÒµ½ËùÓÐÎÒ¼Ó¹ýcache_pageµÄµØ·½£¨»òÕßÎÒ¸æËßËüÒ²ÐУ©£¬ÄÜÔÚºǫ́ͳһÅäÖÃcacheʱ¼ä¡£cacheʱ¼äÒ»°ãµÃÓùý²ÅÖªµÀʲôÅä¶à³¤Ê±¼äºÏÊÊ£¬µ«ÊÇÈç¹ûÒªµ÷ÕûµÄʱºòµÃÒ»¸öÒ»¸öÎļþÈ¥¸Ä¾ÍÌ«Âé·³ÁË¡£
2¡¢Äܹ»·½±ãµÄ×öµ½block¼¶±ðµÄcache¡£±ÈÈçÊ×Ò³ÈÕÅÅÐеÄblockÎÒ¿ÉÒÔÉèÖÃcache1Ì죬ÖÜÅÅÐеÄÉèÖÃ7Ìì¡£ÏÖÔÚºÃÏñÖ»ÓÐÒ³Ãæ¼¶µÄ£¬ÒªÃ´¾ÍÖ±½ÓÓÃcacheµÄapi£¬ÓÃcacheµÄapiÈ¥´¦ÀíÕâЩblockÓе㷱Ëö¡£
3¡¢view cacheµÄɾ³ý¡£ÎÒ¸üÐÂÄÚÈݺóÏëÖ±½Óɾ³ýÏÖÔÚÕâ¸öÒ³ÃæµÄcache£¬ºÃÏñÏÖÔÚûÓз½±ãµÄ·½·¨É¾³ý¡£Õâ¸öºÃÏñÓÐÈËд¹ý³ÌÐò´¦Àí£¬»¹Ã»×Ðϸ¿´¹ý
http://www.mysoftparade.com/blog/webalchemy-django-apache/ ¡£

¸öÈ˹۵㣬˵´íµÄµØ·½Çë±ð¼û¹Ö¡£ÓÐʱ¼äµÄ»°Ï£ÍûÄÜÔÙÉîÈëµÄÌåÑéÒ»ÏÂdjango  £º£©

Ps:
дÍêºó·¢ÏÖµÚ2µãÒѾ­ÓÐÁË¡£¡£
 Template fragment caching

*New in development version*

If you're after even more control, you can also cache template fragments
using the cache template tag. To give your template access to this tag, put
{% load cache %} near the top of your template.


On 12/6/07, vicalloy <zbirder在gmail.com> wrote:
>
> ǰÑÔ
> ʹÓÃDjango¿ª·¢WEB2.0µÄͬѧעÒâÁË£¬DjangoºÜ¿ÉÄÜ´æÔÚÐÔÄÜÎÊÌ⣬¶øÇÒÊÇÔÖÄÑÐԵġ££¨ºÍËãÃüÏÈÉúÒ»Ñù£¬ÏÈÏÅ»£ÏÅ»£ÈË£¬»©ÖÚÈ¡³è£©
>
> ÎÊÌâ
> WEB2.0ÌᳫµÄÊÇÓû§½»»¥£¬Òò´ËWEB2.0Õ¾µã²»¿ÉÄܺʹ«Í³Õ¾µãÒ»Ñù£¬
> ½«´ó²¿·ÖµÄÒ³Ãæ¶¼¾²Ì¬»¯¡£ÔÚÆµ·±µÄ½»»¥ÖУ¬Êý¾Ý¿âµÄ·ÃÎʱز»¿ÉÉÙ¡£µ«DjangoµÄO/R
> MapʵÔÚÈÃÈËûµ×¡£
> DjangoµÄO/R
> MapʹÓ÷½±ã£¬µ«»ù±¾ÊǸöºÚºÐ£¬ÄÑÒÔ½øÐÐÓÅ»¯¡£Ò²ÐíÓÐÈË˵ÓÅ»¯ÊÇÒÔºóµÄÊ¡£µ«ºÜ¶àʱºòÔÚ×ʼûÓÐÁôÏÂÓÅ»¯µÄÓàµØ£¬µ½ÕæÕýÐèÒªÓÅ»¯µÄʱºò½«¿à²»¿°ÑÔ¡£
>
> ¶ÔÊý¾Ý¿âµÄÓÅ»¯Ö÷ÒªÓмõÉÙÊý¾Ý¿âµÄ·ÃÎʺÍsqlÓÅ»¯¡£½«ÉÙÊý¾Ý¿âµÄ·ÃÎÊ¿ÉÒÔͨ¹ýcacheµÈ·½Ê½ÊµÏÖ£¬Õⲿ·ÖÓ¦µ±¶¼Ò»Ñù£¬Ã»ÓÐÌ«¶à¿ÉÒÔÌÖÂ۵ġ£¶ÔÓÚSQLµÄÓÅ»¯£¬DjangoµÄO/R
> MapʵÔÚ·âµÃÌ«¶à£¬ËƺõÒ²²»´æÔÚÌ«¶àÓÅ»¯ÓàµØ£¬Ö»Äܽ«O/R Map»»³ÉSQL¡£
> µ«O/R MapÔÚÒ»¶¨³Ì¶ÈÉÏÊÇÒ»ÖÖÉè¼ÆË¼Ï룬½«Ò»¸öÒѾ­ÉÏÏßµÄO/R Map»»³ÉSQL²¢²»»áÊÇÒ»¼þºÜÇáËɵÄÊ¡£
> ·Ö±íÒ²Êdz£ÓõÄÊý¾Ý¿âÓÅ»¯·½Ê½£¬ÏñHibernate»¹¿ÉÒÔʹÓÃNative SqlʵÏÖ¶Ô·Ö±íµÄÖ§³Ö£¬µ«Django¾Í²»ÐС£ÕâʱºòÓеû»³ÉSql¡£
> µÈ¸ÄÍêºó£¬Ô­ÏÈÓÅÃÀµÄ´úÂë¶¼ÒѾ­±äµÃ²Ò²»È̶ÃÁË¡£
>
> Ïà¹ØÊý¾Ý
> DjangoµÄÓ¦ÓÃÖÐһֱûÓгöÏÖ¹ýʲô´óÁ÷Á¿µÄÍøÕ¾¡£DjangoµÄÆÕ¼°³Ì¶È¿ÉÒÔ˵Ã÷Ò»¶¨ÎÊÌ⣬µ«»òÐíDjango±¾Éí¾Í²»ÊʺÏ×öÕâ¸ö¡£
>
> ÓÉÓÚÎÒ²¢Ã»ÓÐʲô´óÁ÷Á¿µÄdjangoÕ¾µã£¬Òò´ËÎÒµÄÊý¾ÝÖ»ÄÜ´ÓÍøÉÏÕÒÁË¡£PS£ºÎÒµÄСվ£¬Ê¹ÓõÄÊÇBluehostÖ÷»úÖÐ×î±ãÒ˵ÄÒ»¿î£¬ËäȻûʲôÁ÷Á¿£¬µ«ÎÒ½ø¹ÜÀíÆ½Ì¨µÄʱºò¼¸ºõ100%µÄ500´íÎó¡£
>
> ÍøÕ¾Ãû³Æ                    ʹÓü¼Êõ                    AlexaÅÅÃû/ÊÕ¼Á¿/PageView    ÄÚ´æ/
> CPU
> DelphiºÐ×Ó                        ASP/SQLServer           21.05w   /3.57w
> /3w                     1GRAM/NA
> ºÃ¿´²¾                             Django                          16.9w    /7.05w
> /NA                     3·þÎñÆ÷
> JavaEye                         ROR
> 2w       /24.6w/15w                     4G
> ¶¹°ê£¨2006Êý¾Ý£©      Quixote                         NA       /NA
> /30w                     NA
>
> ±¸×¢£º
> ºÃ¿´²¾
> ËäÈ»¾ßÌåÁ÷Á¿²»Çå³þ£¬µ«²Î¿¼AlexaµÄÅÅÃû£¬Á÷Á¿Ó¦µ±ÔÚ10wÒÔÏ¡£
> Õâ¸ö×îÔçÊÇÓÐľͷÄÇÌýÀ´µÄ£¬ÖªµÀÊÇDjango×öµÄ¡£½ñÌìÔÚÍøÉÏ¿´µ½ºÃ¿´²¾µÄ½éÉÜ£¬Ëµ»»ÁË3̨·þÎñÆ÷¡£
> ¶ÔÓÚ´´ÒµÆÚµÄÍøÕ¾À´Ëµ£¬Èç¹û²»ÊÇ´¦ÓÚÐÔÄÜÔ­ÓУ¬Ó¦µ±²»»áÈç´ËÉݳޡ£
> Òò´Ë²Â²âÔÚµ¥·þÎñÆ÷ʱºò£¬¸ºÔØÒѾ­²»Ì«µÍÁË¡£
>
> DelphiºÐ×Ó
> Õâ¸ö²»ÊôÓÚWEB2.0Ò³Ãæ½»»¥±È½ÏÉÙ£¬Òò´ËÊý¾Ý¿â·ÃÎÊÓ¦µ±²»»áÌ«¹ýƵ·±¡£
> ½ö½ö×ö²Î¿¼¡£
>
> JavaEye
> Õâ¸ö´ó¼ÒÓ¦µ±¶¼±È½ÏÊìϤ¡£¹ØÓÚJavaEyeµÄÁ÷Á¿Õ¾³¤´óÈË×Ô¼ºËµµÃ×îÇå³þÁË¡£
> HP DL145 G1£¬Á½Â·AMD Operton 2GHz CPU£¬ 4G DDR RAM£¬ 73G SCSI 15k Disk
> Linux Kernel-2.6.7£¬lighttpd-1.4.13£¬MySQL-5.0£¬ruby-1.8.4(GC patch)
> ÓÉÓÚÍøÕ¾µÄ·ÃÎÊÁ¿´ó²¿·Ö¼¯ÖÐÔÚÔçÉÏ9.00µ½ÍíÉÏ9.00Õâ12¸öСʱµÄ·¶Î§ÄÚ
> ¡£Òò´Ë¿ÉÒÔ´óÖ´ÖÂÔµÄÈÏΪ12Сʱ´¦Àí12Íò¶¯Ì¬ÇëÇ󣬯½¾ùÿСʱ´¦Àí1Íò¶¯Ì¬ÇëÇó£¬Ò²¾ÍÊÇ˵ƽ¾ùÿÃë´¦Àí3¸ö¶¯Ì¬ÇëÇó¡£
>
> ·þÎñÆ÷µÄƽ¾ùCPUʹÓÃÂÊÔÚ·±Ã¦µÄʱºò£¬´ó¸Å15%×óÓÒ£¬MySQLÊý¾Ý¿â·±Ã¦µÄʱºòƽ¾ùÿÃë·¢Ëͳ¬¹ý100ÌõSQLÓï¾ä£¬24Сʱƽ¾ùÿÃë·¢ËÍ45ÌõSQLÓï¾ä¡£Ó²ÅÌIO·Ç³£ÉÙ
>
> ¶¹°ê
> WEB2.0µÄ´ú±í£¬Í¨ÊÇʹÓÃpython¿ª·¢¡£°¢±±ÔÚ¶¹°êµÄÔçÆÚÓÐ̸ÂÛ¹ý¶¹°êµÄÐÔÄÜÎÊÌâ¡£
> ÏÖÔÚcpuʹÓÃ15%×óÓÒ¡£Ã¿Ìì30ÍòÒ³·ÃÎÊ£¨°×ÌìÿÃë10´ÎµÄÑù×Ó)£¬100%ÊǶ¯Ì¬Ò³Ãæ¡£·þÎñÆ÷µÄ·ÃÎÊÏìӦʱ¼äƽ¾ùÈÔÔÚ0.05ÃëÒÔÏ¡£
> ¼ÓÉÏËùÓеķâÃæÕÕÆ¬£¬ÊÇÓм¸Ê®¸öG¡£²»¹ýÕâЩ²»ÔÚÊý¾Ý¿âÀï¡£Êý¾Ý¿âÏÖÔÚÓÐ5G,
> ×î¶àµÄÊÇÊéµÄÐÅÏ¢(40¶àÍòÌõ)ºÍÓû§ÊÕ²ØºÍÆÀ¼Û(50¶àÍòÌõ)¡£Õâ¸ö²»°üÀ¨ÈßÓà¡£
> mysqlÓÃÁËinnodbºÍmyiam. ¶Á/дƵ·±µÄÓÃinnodb, ¶Á¶àдÉÙ¡¢Ð´¶à¶ÁÉÙ(±ÈÈçlog)»òÕßÐèÒªfull text
> indexµÄÓÃmyiam. replication/cluster»¹Ã»ÓУ¬²»¹ýºÜ¿ì»áÓС£ÏÖÔÚÿÍíÓÃmysqldump×öbackup.
>
> --
> Blog http://vicalloy.spaces.live.com/
> My googlepage http://vicalloy.googlepages.com/
> OldPhoto http://www.lzpian.com/
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/1baa091e/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 21:36

vicalloy zbirder在gmail.com
星期四 十二月 6 21:36:38 HKT 2007

:)
admin的问题我估计是在第一次进入admin的时候django做的操作太多,被服务器给挂了。和我说的性能问题没多少关系,只是随便提一下而已。
阿北有说到django使用O/R Map估计性能会不太好,一次douban应当是没有用O/R Map的。
性能方面我没实际的测试过:),只是根据目前在线运行的网站猜测的而已。
网站实际的运行环境会比测试环境复杂得多,简单的测试意义不大。
就如以前那个说django比ror快的测试一样。
他只是只是测试请求处理速度,因此性能主要还是受脚本解释器速度的影响。
python比ruby快,django比ror快也是自然的。
O/R Map的测试也是一样,如果你只是进行单表查询,O/R Map是不会比sql慢的,毕竟生成的sql都差不多。
但在实际环境中加上了多表关联得,O/R Map自动生成的sql和优化过的sql就可能是有很大差距了。
沈大侠的那个看了说明就感觉怕怕:)。那个框架好像主要是为了支持高并发的吧。
一般的网站的瓶颈在数据库,因此框架本身的性能一般都可以不做太多考虑的(个人感觉而已,我也没有大流量的经验)。
而且对于一个网站只要能支持可伸缩(靠增加服务器提高性能),对单机性能不需要做太苛刻的要求。

-- 
Blog http://vicalloy.spaces.live.com/
My googlepage http://vicalloy.googlepages.com/
OldPhoto http://www.lzpian.com/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 21:46

limodou limodou在gmail.com
星期四 十二月 6 21:46:19 HKT 2007

On Dec 6, 2007 9:36 PM, vicalloy <zbirder在gmail.com> wrote:
> :)
> admin的问题我估计是在第一次进入admin的时候django做的操作太多,被服务器给挂了。和我说的性能问题没多少关系,只是随便提一下而已。
> 阿北有说到django使用O/R Map估计性能会不太好,一次douban应当是没有用O/R Map的。
> 性能方面我没实际的测试过:),只是根据目前在线运行的网站猜测的而已。
> 网站实际的运行环境会比测试环境复杂得多,简单的测试意义不大。
> 就如以前那个说django比ror快的测试一样。
> 他只是只是测试请求处理速度,因此性能主要还是受脚本解释器速度的影响。
> python比ruby快,django比ror快也是自然的。
> O/R Map的测试也是一样,如果你只是进行单表查询,O/R Map是不会比sql慢的,毕竟生成的sql都差不多。
> 但在实际环境中加上了多表关联得,O/R Map自动生成的sql和优化过的sql就可能是有很大差距了。
> 沈大侠的那个看了说明就感觉怕怕:)。那个框架好像主要是为了支持高并发的吧。
> 一般的网站的瓶颈在数据库,因此框架本身的性能一般都可以不做太多考虑的(个人感觉而已,我也没有大流量的经验)。
> 而且对于一个网站只要能支持可伸缩(靠增加服务器提高性能),对单机性能不需要做太苛刻的要求。
>
如果这样说的话,其实绝大部分并没有测试数据,只是一种主观认为,这样的观点未必让人信服。而且对于性能的要求根据需求的不同而不同,在某些情况下未必是一个很严重的问题。

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 21:48

vicalloy zbirder在gmail.com
星期四 十二月 6 21:48:52 HKT 2007

我这里有说前提条件了。
WEB2.0主要是指网站和用户交互频繁,不适合做长时间cache。
对于WEB2.0网站,为了增加用户体验,必然要分析用户行为等,这些都将存在一定的复杂度。
Django应用中还有一个排名比较靠前的(海报网)。不过他是接了CMS的,大部分内容都是通过CMS生成的静态页面。

我的结论:
Django的开发速度确实很快(个人觉得比ROR快),但运行效率方面就不好说了。
如果想做成一个流量大站,那就需要慎重考虑了。

在 07-12-6,@@<askfor在gmail.com> 写道:
> 学生时代用xoops做过一个站。最高3月排名1w左右。最高日排名到过3000多,平均日ip2w左右,pv不记得了,以前不怎么关注这个。。一直用的虚拟主机。
> 每个页面query数也不少,所有配置都是从数据库里读取,首页大概是50多(时间有点久了,不怎么记得清楚了)普通论坛页面也40多个query。不用cache时服务器受不了,能占cpu
> 100%。后来修改过一些代码,用了xoops带的cache系统(也就是smarty的cache,但是能直接配置),基本没再被停过空间。
>
> django用的不是很熟悉,只写过小程序而且也没实际使用过。不过感觉一个页面出来的query数确实不少,一个简单的页面也有2~30个查询。论坛这类的应用我想不会选择django,但是普通的网站应用我想django还是可以胜任的。
> 普通的网站一般不会出现十分复杂的业务运算逻辑,也不大会出现效率十分低下的sql(即使有相信也不多),orm出来的sql基本是能接受的,即使不能接受,需要修改的应该也不会太多。
> 优化的大头更应该在cache上。就算有很耗效率的sql,如果是几分钟甚至几小时执行一次我觉得都能接受,也不会使你的服务器down掉。
> django的cache系统也是比较完善了,我想使用得当的话django站的效率问题至少不会是灾难性的:)
>
> 不过还希望django的cache能做到这些功能。(也许是不够了解,现在已经就能做到)
> 1、能找到所有我加过cache_page的地方(或者我告诉它也行),能在后台统一配置cache时间。cache时间一般得用过才知道什么配多长时间合适,但是如果要调整的时候得一个一个文件去改就太麻烦了。
> 2、能够方便的做到block级别的cache。比如首页日排行的block我可以设置cache1天,周排行的设置7天。现在好像只有页面级的,要么就直接用cache的api,用cache的api去处理这些block有点繁琐。
> 3、view
> cache的删除。我更新内容后想直接删除现在这个页面的cache,好像现在没有方便的方法删除。这个好像有人写过程序处理,还没仔细看过http://www.mysoftparade.com/blog/webalchemy-django-apache/
>>
> 个人观点,说错的地方请别见怪。有时间的话希望能再深入的体验一下django  :)
>
> Ps:
> 写完后发现第2点已经有了。。
>
> Template fragment caching
>
> New in development version
>
> If you're after even more control, you can also cache template fragments
> using the cache template tag. To give your template access to this tag, put
> {% load cache %} near the top of your template.

-- 
Blog http://vicalloy.spaces.live.com/
My googlepage http://vicalloy.googlepages.com/
OldPhoto http://www.lzpian.com/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 22:09

@@ askfor在gmail.com
星期四 十二月 6 22:09:07 HKT 2007

Æäʵcache²»ÐèҪ̫³¤Ê±¼ä£¬¾ÍËã30Ã룬ÄÇһСʱ´¦ÀíµÄ´ÎÊýÒ²¾Í´ó¸ÅÈ·¶¨ÁË£¬²éѯÊÜ·ÃÎÊÁ¿µÄÓ°Ïì±ä»¯¾Í²»¶àÁË
µ«ÊÇ×îºÃÊÇÄÜ×öµ½Ö»ÔÚÐèҪʱÀ´É¾³ýʧЧµÄcache¡£ÄÜ×öµ½ÕâµãqueryÊý¾ÍÄܼõÉٺܶࡣ
ÒÔǰ×öµÄÉçÇøÐ͵ÄÍøÕ¾£¬½»»¥²¢²»ËãÉÙ¡£

Óû§ÐÐΪ·ÖÎöȷʵûÓÐ×ö¹ý£¬µ«ÎÒÏëÕⲿ·Ö¿ÉÒÔ·ÅÔÚdjangoµÄormÖ®ÍâÀ´×ö£¬Èç¹û±È½Ï¸´Ôӵϰ¡£


On 12/6/07, vicalloy <zbirder在gmail.com> wrote:
>
> ÎÒÕâÀïÓÐ˵ǰÌáÌõ¼þÁË¡£
> WEB2.0Ö÷ÒªÊÇÖ¸ÍøÕ¾ºÍÓû§½»»¥Æµ·±£¬²»ÊʺÏ×ö³¤Ê±¼äcache¡£
> ¶ÔÓÚWEB2.0ÍøÕ¾£¬ÎªÁËÔö¼ÓÓû§ÌåÑ飬±ØÈ»Òª·ÖÎöÓû§ÐÐΪµÈ£¬ÕâЩ¶¼½«´æÔÚÒ»¶¨µÄ¸´ÔÓ¶È¡£
> DjangoÓ¦ÓÃÖл¹ÓÐÒ»¸öÅÅÃû±È½Ï¿¿Ç°µÄ£¨º£±¨Íø£©¡£²»¹ýËûÊǽÓÁËCMSµÄ£¬´ó²¿·ÖÄÚÈݶ¼ÊÇͨ¹ýCMSÉú³ÉµÄ¾²Ì¬Ò³Ãæ¡£
>
> ÎҵĽáÂÛ£º
> DjangoµÄ¿ª·¢ËÙ¶ÈȷʵºÜ¿ì£¨¸öÈ˾õµÃ±ÈROR¿ì£©£¬µ«ÔËÐÐЧÂÊ·½Ãæ¾Í²»ºÃ˵ÁË¡£
> Èç¹ûÏë×ö³ÉÒ»¸öÁ÷Á¿´óÕ¾£¬ÄǾÍÐèÒªÉ÷ÖØ¿¼ÂÇÁË¡£
>
> ÔÚ 07-12-6£¬@@<askfor在gmail.com> дµÀ£º
> >
> ѧÉúʱ´úÓÃxoops×ö¹ýÒ»¸öÕ¾¡£×î¸ß3ÔÂÅÅÃû1w×óÓÒ¡£×î¸ßÈÕÅÅÃûµ½¹ý3000¶à£¬Æ½¾ùÈÕip2w×óÓÒ£¬pv²»¼ÇµÃÁË£¬ÒÔǰ²»Ôõô¹Ø×¢Õâ¸ö¡£¡£Ò»Ö±ÓõÄÐéÄâÖ÷»ú¡£
> >
> ÿ¸öÒ³ÃæqueryÊýÒ²²»ÉÙ£¬ËùÓÐÅäÖö¼ÊÇ´ÓÊý¾Ý¿âÀï¶ÁÈ¡£¬Ê×Ò³´ó¸ÅÊÇ50¶à£¨Ê±¼äÓеã¾ÃÁË£¬²»Ôõô¼ÇµÃÇå³þÁË£©ÆÕͨÂÛÌ³Ò³ÃæÒ²40¶à¸öquery¡£²»ÓÃcacheʱ·þÎñÆ÷Êܲ»ÁË£¬ÄÜÕ¼cpu
> > 100%¡£ºóÀ´Ð޸ĹýһЩ´úÂ룬ÓÃÁËxoops´øµÄcacheϵͳ£¨Ò²¾ÍÊÇsmartyµÄcache£¬µ«ÊÇÄÜÖ±½ÓÅäÖã©£¬»ù±¾Ã»ÔÙ±»Í£¹ý¿Õ¼ä¡£
> >
> >
> djangoÓõIJ»ÊǺÜÊìϤ£¬Ö»Ð´¹ýС³ÌÐò¶øÇÒҲûʵ¼ÊʹÓùý¡£²»¹ý¸Ð¾õÒ»¸öÒ³Ãæ³öÀ´µÄqueryÊýȷʵ²»ÉÙ£¬Ò»¸ö¼òµ¥µÄÒ³ÃæÒ²ÓÐ2¡«30¸ö²éѯ¡£ÂÛ̳ÕâÀàµÄÓ¦ÓÃÎÒÏë²»»áÑ¡Ôñdjango£¬µ«ÊÇÆÕͨµÄÍøÕ¾Ó¦ÓÃÎÒÏëdjango»¹ÊÇ¿ÉÒÔʤÈεġ£
> >
> ÆÕͨµÄÍøÕ¾Ò»°ã²»»á³öÏÖÊ®·Ö¸´ÔÓµÄÒµÎñÔËËãÂß¼­£¬Ò²²»´ó»á³öÏÖЧÂÊÊ®·ÖµÍϵÄsql£¨¼´Ê¹ÓÐÏàÐÅÒ²²»¶à£©£¬orm³öÀ´µÄsql»ù±¾ÊÇÄܽÓÊܵ쬼´Ê¹²»ÄܽÓÊÜ£¬ÐèÒªÐ޸ĵÄÓ¦¸ÃÒ²²»»áÌ«¶à¡£
> > ÓÅ»¯µÄ´óÍ·¸üÓ¦¸ÃÔÚcacheÉÏ¡£¾ÍËãÓкܺÄЧÂʵÄsql£¬Èç¹ûÊǼ¸·ÖÖÓÉõÖÁ¼¸Ð¡Ê±Ö´ÐÐÒ»´ÎÎÒ¾õµÃ¶¼ÄܽÓÊÜ£¬Ò²²»»áʹÄãµÄ·þÎñÆ÷downµô¡£
> > djangoµÄcacheϵͳҲÊDZȽÏÍêÉÆÁË£¬ÎÒÏëʹÓõõ±µÄ»°djangoÕ¾µÄЧÂÊÎÊÌâÖÁÉÙ²»»áÊÇÔÖÄÑÐԵģº£©
> >
> > ²»¹ý»¹Ï£ÍûdjangoµÄcacheÄÜ×öµ½ÕâЩ¹¦ÄÜ¡££¨Ò²ÐíÊDz»¹»Á˽⣬ÏÖÔÚÒѾ­¾ÍÄÜ×öµ½£©
> >
> 1¡¢ÄÜÕÒµ½ËùÓÐÎÒ¼Ó¹ýcache_pageµÄµØ·½£¨»òÕßÎÒ¸æËßËüÒ²ÐУ©£¬ÄÜÔÚºǫ́ͳһÅäÖÃcacheʱ¼ä¡£cacheʱ¼äÒ»°ãµÃÓùý²ÅÖªµÀʲôÅä¶à³¤Ê±¼äºÏÊÊ£¬µ«ÊÇÈç¹ûÒªµ÷ÕûµÄʱºòµÃÒ»¸öÒ»¸öÎļþÈ¥¸Ä¾ÍÌ«Âé·³ÁË¡£
> >
> 2¡¢Äܹ»·½±ãµÄ×öµ½block¼¶±ðµÄcache¡£±ÈÈçÊ×Ò³ÈÕÅÅÐеÄblockÎÒ¿ÉÒÔÉèÖÃcache1Ì죬ÖÜÅÅÐеÄÉèÖÃ7Ìì¡£ÏÖÔÚºÃÏñÖ»ÓÐÒ³Ãæ¼¶µÄ£¬ÒªÃ´¾ÍÖ±½ÓÓÃcacheµÄapi£¬ÓÃcacheµÄapiÈ¥´¦ÀíÕâЩblockÓе㷱Ëö¡£
> > 3¡¢view
> > cacheµÄɾ³ý¡£ÎÒ¸üÐÂÄÚÈݺóÏëÖ±½Óɾ³ýÏÖÔÚÕâ¸öÒ³ÃæµÄcache£¬ºÃÏñÏÖÔÚûÓз½±ãµÄ·½·¨É¾³ý¡£Õâ¸öºÃÏñÓÐÈËд¹ý³ÌÐò´¦Àí£¬»¹Ã»×Ðϸ¿´¹ý
> http://www.mysoftparade.com/blog/webalchemy-django-apache/
> > ¡£
> >
> > ¸öÈ˹۵㣬˵´íµÄµØ·½Çë±ð¼û¹Ö¡£ÓÐʱ¼äµÄ»°Ï£ÍûÄÜÔÙÉîÈëµÄÌåÑéÒ»ÏÂdjango  £º£©
> >
> > Ps:
> > дÍêºó·¢ÏÖµÚ2µãÒѾ­ÓÐÁË¡£¡£
> >
> > Template fragment caching
> >
> > New in development version
> >
> > If you're after even more control, you can also cache template fragments
> > using the cache template tag. To give your template access to this tag,
> put
> > {% load cache %} near the top of your template.
>
> --
> Blog http://vicalloy.spaces.live.com/
> My googlepage http://vicalloy.googlepages.com/
> OldPhoto http://www.lzpian.com/
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/deb59c7e/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 22:20

黄毅 yi.codeplayer在gmail.com
星期四 十二月 6 22:20:59 HKT 2007

性能要求奇高的 (像你说的很多web2.0网站),从数据库设计开始就不会把数据库结构搞得太复杂,基本不怎么需要关联查询,冗余高点就高点,所以这种情况直接写
SQL 语句,没啥问题。
一般数据库复杂的,对性能要求也不高,就适合用 ORM 了。

On Dec 6, 2007 9:36 PM, vicalloy <zbirder at gmail.com> wrote:

> :)
> admin的问题我估计是在第一次进入admin的时候django做的操作太多,被服务器给挂了。和我说的性能问题没多少关系,只是随便提一下而已。
> 阿北有说到django使用O/R Map估计性能会不太好,一次douban应当是没有用O/R Map的。
> 性能方面我没实际的测试过:),只是根据目前在线运行的网站猜测的而已。
> 网站实际的运行环境会比测试环境复杂得多,简单的测试意义不大。
> 就如以前那个说django比ror快的测试一样。
> 他只是只是测试请求处理速度,因此性能主要还是受脚本解释器速度的影响。
> python比ruby快,django比ror快也是自然的。
> O/R Map的测试也是一样,如果你只是进行单表查询,O/R Map是不会比sql慢的,毕竟生成的sql都差不多。
> 但在实际环境中加上了多表关联得,O/R Map自动生成的sql和优化过的sql就可能是有很大差距了。
> 沈大侠的那个看了说明就感觉怕怕:)。那个框架好像主要是为了支持高并发的吧。
> 一般的网站的瓶颈在数据库,因此框架本身的性能一般都可以不做太多考虑的(个人感觉而已,我也没有大流量的经验)。
> 而且对于一个网站只要能支持可伸缩(靠增加服务器提高性能),对单机性能不需要做太苛刻的要求。
>
> --
> Blog http://vicalloy.spaces.live.com/
> My googlepage http://vicalloy.googlepages.com/
> OldPhoto http://www.lzpian.com/
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/0c6f1c01/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 22:22

jejwe jejwester在gmail.com
星期四 十二月 6 22:22:37 HKT 2007

Èç¹ûÕfdjangoÓÐÐÔÄ܆–î}£¬ÄÇrorÒ²²»•þºÃµ½ÄÄÑe£¬ƒÉ‚€¶¼ÊDz¶àµÄ–|Î÷¡£²»•þÒòžéactiverecord¾Í±ÈdjangoµÄorm¿ìЩ£¬Ö÷Ҫ߀ÊǶà×öƒž»¯¡£javaeyeƒž»¯µÄ²»åe£¬ËùÒÔËٶȶ¼²»åe¡£ÎÒÏëÐÅÈç¹ûÊÇjavaeyeҕ¾€Õ¾éLʹÓÃdjangoé_°l£¬Í¬˜Ó•þºÜ¿ì¡£Òòžéé_°lÕß±¾ÉíµÄƒž»¯¹¦µ×±ÈÝ^¸ß£¬ÓÐß@·½ÃæµÄ½›òž¡£µÈµÈ›Q¶¨µÄ¡£
django±Èror¿ìµÄœyԇÕfÃ÷²»ÁËʲô†–î}£¬µ«Ëû‚ƒƒÉÊÇͬ˜ÓµÄ–|Î÷£¬ÕfÃ÷rorÖÁÉÙ²»•þ±Èdjango¿ì¡£ËùÒÔ߀ÊdzÌÐòÔOӋÉϵƖî}¡£
¼´Ê¹ormÒ²ÊÇ¿ÉÒÔºÜ¶àƒž»¯µÄ.javaeyeÒ²×öÁ˺ܶྏ´æ£¬robbinÊnj‘Á˲»ÉÙ½›òžÎÄÕµÄ
http://www.pownce.com
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/f7f95ab5/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 22:42

vicalloy zbirder在gmail.com
星期四 十二月 6 22:42:55 HKT 2007

robbinµÄÒ²¿´ÁË£¬ÀïÃæÓв¿·ÖÄÚÈÝÖ±½ÓÓÃÁËÈ«ÎļìË÷ûÓÐÓÃÊý¾Ý¿â¡£
¶øÇÒÏà±ÈdjangoµÄo/r map£¬rorµÄactiverecordÏà¶Ô»¹Í¸Ã÷Щ¡£
activerecord´Ó¹¦ÄÜ·½ÃæËµ±ÈdjangoµÄ¸üÍêÉÆÐ©¡£

ÎÒÕâÀï²¢²»ÊÇ˵django²»ºÃ¡£
ÕýÈç´ó¼Ò˵µÄ£¬Ê²Ã´¶«Î÷¶¼ÓÐ×Ô¼ºµÄÊÊÓ÷¶Î§¡£
ÎÒµÄÒâ˼ÊÇ£¬Èç¹û×ʼµÄÄ¿±ê¾ÍÊÇÒª½¨³ÉÒ»¸ö¸´ÔÓµÄÁ÷Á¿´óÕ¾£¬djangoδ±ØÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ¡£

ÔÚ 07-12-6£¬jejwe<jejwester在gmail.com> дµÀ£º
> Èç¹ûÕfdjangoÓÐÐÔÄ܆–î}£¬ÄÇrorÒ²²»•þºÃµ½ÄÄÑe£¬ƒÉ‚€¶¼ÊDz¶àµÄ–|Î÷¡£²»•þÒòžéactiverecord¾Í±ÈdjangoµÄorm¿ìЩ£¬Ö÷Ҫ߀ÊǶà×öƒž»¯¡£javaeyeƒž»¯µÄ²»åe£¬ËùÒÔËٶȶ¼²»åe¡£ÎÒÏëÐÅÈç¹ûÊÇjavaeyeҕ¾€Õ¾éLʹÓÃdjangoé_°l£¬Í¬˜Ó•þºÜ¿ì¡£Òòžéé_°lÕß±¾ÉíµÄƒž»¯¹¦µ×±ÈÝ^¸ß£¬ÓÐß@·½ÃæµÄ½›òž¡£µÈµÈ›Q¶¨µÄ¡£
> django±Èror¿ìµÄœyԇÕfÃ÷²»ÁËʲô†–î}£¬µ«Ëû‚ƒƒÉÊÇͬ˜ÓµÄ–|Î÷£¬ÕfÃ÷rorÖÁÉÙ²»•þ±Èdjango¿ì¡£ËùÒÔ߀ÊdzÌÐòÔOӋÉϵƖî}¡£¼´Ê¹ormÒ²ÊÇ¿ÉÒÔºÜ¶àƒž»¯µÄ.javaeyeÒ²×öÁ˺ܶྏ´æ£¬robbinÊnj‘Á˲»ÉÙ½›òžÎÄÕµÄ
> http://www.pownce.com

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 22:49

Nicholas Ding nicholasdsj在gmail.com
星期四 十二月 6 22:49:34 HKT 2007

ÀÏ´ó£¬ËµÊµ»°£¬Á÷Á¿´ó²»´óºÍDjangoûɶ¹ØÏµ£¬ÐÔÄÜÒ²²»ÊǼòµ¥¿¿¸öWeb¿ò¼Ü¾ÍÄܽâ¾öµÄ¡£

On Dec 6, 2007 10:42 PM, vicalloy <zbirder在gmail.com> wrote:

> robbinµÄÒ²¿´ÁË£¬ÀïÃæÓв¿·ÖÄÚÈÝÖ±½ÓÓÃÁËÈ«ÎļìË÷ûÓÐÓÃÊý¾Ý¿â¡£
> ¶øÇÒÏà±ÈdjangoµÄo/r map£¬rorµÄactiverecordÏà¶Ô»¹Í¸Ã÷Щ¡£
> activerecord´Ó¹¦ÄÜ·½ÃæËµ±ÈdjangoµÄ¸üÍêÉÆÐ©¡£
>
> ÎÒÕâÀï²¢²»ÊÇ˵django²»ºÃ¡£
> ÕýÈç´ó¼Ò˵µÄ£¬Ê²Ã´¶«Î÷¶¼ÓÐ×Ô¼ºµÄÊÊÓ÷¶Î§¡£
> ÎÒµÄÒâ˼ÊÇ£¬Èç¹û×ʼµÄÄ¿±ê¾ÍÊÇÒª½¨³ÉÒ»¸ö¸´ÔÓµÄÁ÷Á¿´óÕ¾£¬djangoδ±ØÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ¡£
>
> ÔÚ 07-12-6£¬jejwe<jejwester在gmail.com> дµÀ£º
> >
> Èç¹ûÕfdjangoÓÐÐÔÄ܆–î}£¬ÄÇrorÒ²²»•þºÃµ½ÄÄÑe£¬ƒÉ‚€¶¼ÊDz¶àµÄ–|Î÷¡£²»•þÒòžéactiverecord¾Í±ÈdjangoµÄorm¿ìЩ£¬Ö÷Ҫ߀ÊǶà×öƒž»¯¡£javaeyeƒž»¯µÄ²»åe£¬ËùÒÔËٶȶ¼²»åe¡£ÎÒÏëÐÅÈç¹ûÊÇjavaeyeҕ¾€Õ¾éLʹÓÃdjangoé_°l£¬Í¬˜Ó•þºÜ¿ì¡£Òòžéé_°lÕß±¾ÉíµÄƒž»¯¹¦µ×±ÈÝ^¸ß£¬ÓÐß@·½ÃæµÄ½›òž¡£µÈµÈ›Q¶¨µÄ¡£
> > django±Èror¿ìµÄœyԇÕfÃ÷²»ÁËʲô†–î}£¬µ«Ëû‚ƒƒÉÊÇͬ˜ÓµÄ–|Î÷£¬ÕfÃ÷rorÖÁÉÙ²»•þ±Èdjango¿ì¡£ËùÒÔ߀ÊdzÌÐòÔOӋÉϵƖî}¡£
> ¼´Ê¹ormÒ²ÊÇ¿ÉÒÔºÜ¶àƒž»¯µÄ.javaeyeÒ²×öÁ˺ܶྏ´æ£¬robbinÊnj‘Á˲»ÉÙ½›òžÎÄÕµÄ
> > http://www.pownce.com
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
Nicholas @ Nirvana Studio
http://www.nirvanastudio.org
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/9b4f1011/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 22:50

jejwe jejwester在gmail.com
星期四 十二月 6 22:50:48 HKT 2007

ÆäŒ¾ÍÏñÄãÖvµÄ"robbinµÄÒ²¿´ÁË£¬ÀïÃæÓв¿·ÖÄÚÈÝÖ±½ÓÓÃÁËÈ«ÎļìË÷ûÓÐÓÃÊý¾Ý¿â¡£"
ß@ÕfÃ÷ºÜ¶à•rºòÐÔÄ܆–î}²»Êǹ⿿¿ò¼Ü×ÔÉí¾ÍÄܽâ›QµÄ¡£ºÜ¿ÉÄܽâ›QÞk·¨¾ÍÊÇÐèÒª×Ô¼ºÈ¥Ä¸÷·½Ãæ¾CºÏ¿¼‘]£¬ÓÐËùÈ¡Éᣬ
YAHOOµÄPHP‘ªÓúܶ࣬YAHOOµÄPHP°æ±¾ÊǺÍÎ҂ƒÕý³£ÓõIJ»Ò»˜ÓµÄ£¬¶¼Êǽ›ß^Ëû‚ƒ×Ô¼ºƒž»¯µÄ£¬È¥µôËû‚ƒ²»ÐèÒªµÄ–|–|¡£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/143deb62/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 23:08

vicalloy zbirder在gmail.com
星期四 十二月 6 23:08:54 HKT 2007

的确性能不是但靠框架就能解决的。
但并不能说和框架是完全没有关系的。
大家的目标都是使用合适的东西去做。
django的开发速度快,但对于复杂应用的时候未必合适。
虽然很多时候可以通过cache等手动来解决性能问题,但当你做完这些工作后,django在开发速度方面的优势就未必很明显了。

在 07-12-6,Nicholas Ding<nicholasdsj在gmail.com> 写道:
> 老大,说实话,流量大不大和Django没啥关系,性能也不是简单靠个Web框架就能解决的。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 23:12

jejwe jejwester在gmail.com
星期四 十二月 6 23:12:23 HKT 2007

¿ÉÒÔԇԇpylons£¬ËûµÄ¿É”UÕ¹ÐÔ±ÈÝ^¸ß¡£¶øÇÒÎÒӛµÃÓЂ€Ê²Ã´½»Ò×¾WʲôµÄ£¬Ó›²»µÃÁË¡£“þÕf¾ÍÊÇʹÓÃPYLONSµÄ¡£

ÕÒµ½ÁË
Just thought I'd let everyone know that after much hard work we have finally

publicly launched our Pylons-based site - http://www.marketshares.com.au

Apologies for the (semi-)spam, but I think it is a good advertisement for
the
power of Pylons as it is a fairly large site with daily data on more than
600
companies. It is a heavy user of Myghty with more than 160
template/component
files. Each trading night it processes around 2GB of additional data into
the
postgres db via SQLAlchemy and creates more than 55,000 individual graphs
which
are available over more than 3 years (totalling >250G). We are using nginx
as
the web server/load balancer.


I am indebted to the Pylons and SQLAlchemy people (and the many related
projects, such as Paste, FormBuild, Authkit, and more) as it would have been
a
lot more difficult to get to where we are without these excellent projects
to
build on.


Robert
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071206/99669f9c/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 23:18

limodou limodou在gmail.com
星期四 十二月 6 23:18:04 HKT 2007

On Dec 6, 2007 11:08 PM, vicalloy <zbirder在gmail.com> wrote:
> 的确性能不是但靠框架就能解决的。
> 但并不能说和框架是完全没有关系的。
> 大家的目标都是使用合适的东西去做。
> django的开发速度快,但对于复杂应用的时候未必合适。
> 虽然很多时候可以通过cache等手动来解决性能问题,但当你做完这些工作后,django在开发速度方面的优势就未必很明显了。
>
我认为这是鱼和熊掌的问题。性能与易用性很多情况下就是矛盾的,开发快速意味着许多工作自动化,配置化,但这样有可能不是最优的。而django的主要任务我认为还是解决开发的问题。等到了需要解决性能的时候,这时关注的已经不在是开发的速度问题了,关注的重点已经转移。

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月06日 星期四 23:20

vicalloy zbirder在gmail.com
星期四 十二月 6 23:20:22 HKT 2007

turbogearsºÍpylonsºÏ²¢ÁË
http://www.douban.com/group/topic/1923371/
ÎÒÖ»ÊÇ˵˵ÎÒ¶ÔdjangoµÄ¿´·¨ÁË£¬²¢²»ÊÇÒ»¶¨Òª»»É¶¿ò¼Ü¡£

ÔÚ 07-12-6£¬jejwe<jejwester在gmail.com> дµÀ£º
> ¿ÉÒÔԇԇpylons£¬ËûµÄ¿É”UÕ¹ÐÔ±ÈÝ^¸ß¡£¶øÇÒÎÒӛµÃÓЂ€Ê²Ã´½»Ò×¾WʲôµÄ£¬Ó›²»µÃÁË¡£“þÕf¾ÍÊÇʹÓÃPYLONSµÄ¡£

-- 
Blog http://vicalloy.spaces.live.com/
My googlepage http://vicalloy.googlepages.com/
OldPhoto http://www.lzpian.com/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月07日 星期五 09:26

大郎 iexper在gmail.com
星期五 十二月 7 09:26:10 HKT 2007

pylonsºÍTG½«ÒªºÏ²¢µÄÏûÏ¢ÊǺܾÃ֮ǰµÄÊÂÇéÁË :)

On Dec 6, 2007 11:20 PM, vicalloy <zbirder在gmail.com> wrote:

> turbogearsºÍpylonsºÏ²¢ÁË
> http://www.douban.com/group/topic/1923371/
> ÎÒÖ»ÊÇ˵˵ÎÒ¶ÔdjangoµÄ¿´·¨ÁË£¬²¢²»ÊÇÒ»¶¨Òª»»É¶¿ò¼Ü¡£
>
> ÔÚ 07-12-6£¬jejwe<jejwester在gmail.com> дµÀ£º
> > ¿ÉÒÔԇԇpylons£¬ËûµÄ¿É”UÕ¹ÐÔ±ÈÝ^¸ß¡£¶øÇÒÎÒӛµÃÓЂ€Ê²Ã´½»Ò×¾WʲôµÄ£¬Ó›²»µÃÁË¡£“þÕf¾ÍÊÇʹÓÃPYLONSµÄ¡£
>
> --
> Blog http://vicalloy.spaces.live.com/
> My googlepage http://vicalloy.googlepages.com/
> OldPhoto http://www.lzpian.com/
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
http://del.icio.us/iexper
http://twitter.com/qichangxing
http://webpy.org
Gtalk: iexper(at)gmail.com
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071207/a9c1c0dc/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月07日 星期五 11:49

vicalloy zbirder在gmail.com
星期五 十二月 7 11:49:22 HKT 2007

恩,去官网看了下,是6月份的消息。
不过不知道2.0什么时候可以出。
Pylons的应用似乎还比较少。
不过里面确实有个比较牛的,http://www.bittorrent.com/。

PS:
Pylons的版本号和Django长得好像0.9.6.1。

在 07-12-7,大郎<iexper在gmail.com> 写道:
> pylons和TG将要合并的消息是很久之前的事情了 :)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月07日 星期五 19:36

jejwe jejwester在gmail.com
星期五 十二月 7 19:36:33 HKT 2007

ºÇºÇ£¬ÊǺÜÏñ£¬ÎÒÓXµÃÈç¹ûÓÐdiy¾«Éñ£¬È¥ŒWWEB.PY¡£´óÀÉÓн›òž¡£¹þ¹þ
²»ÖªµÀ´óÀɵÄ×÷Ʒɶ•rºò³öí
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071207/143f03e4/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月09日 星期日 14:04

John fractal johnfractal在gmail.com
星期日 十二月 9 14:04:09 HKT 2007

我不认为django一定就是低效率,但对于要多个表格join来join去的数据库结构,django的orm基本不可用了。最近尝试用django做jxc得出的结论
:(

On Dec 6, 2007 7:08 PM, vicalloy <zbirder在gmail.com> wrote:

> 前言
> 使用Django开发WEB2.0的同学注意了,Django很可能存在性能问题,而且是灾难性的。(和算命先生一样,先吓唬吓唬人,哗众取宠)
>
> 问题
> WEB2.0提倡的是用户交互,因此WEB2.0站点不可能和传统站点一样,
> 将大部分的页面都静态化。在频繁的交互中,数据库的访问必不可少。但Django的O/R
> Map实在让人没底。
> Django的O/R
> Map使用方便,但基本是个黑盒,难以进行优化。也许有人说优化是以后的事。但很多时候在最开始没有留下优化的余地,到真正需要优化的时候将苦不堪言。
>
> 对数据库的优化主要有减少数据库的访问和sql优化。将少数据库的访问可以通过cache等方式实现,这部分应当都一样,没有太多可以讨论的。对于SQL的优化,Django的O/R
> Map实在封得太多,似乎也不存在太多优化余地,只能将O/R Map换成SQL。
> 但O/R Map在一定程度上是一种设计思想,将一个已经上线的O/R Map换成SQL并不会是一件很轻松的事。
> 分表也是常用的数据库优化方式,像Hibernate还可以使用Native Sql实现对分表的支持,但Django就不行。这时候有得换成Sql。
> 等改完后,原先优美的代码都已经变得惨不忍睹了。
>
> 相关数据
> Django的应用中一直没有出现过什么大流量的网站。Django的普及程度可以说明一定问题,但或许Django本身就不适合做这个。
>
> 由于我并没有什么大流量的django站点,因此我的数据只能从网上找了。PS:我的小站,使用的是Bluehost主机中最便宜的一款,虽然没什么流量,但我进管理平台的时候几乎100%的500错误。
>
> 网站名称                    使用技术                    Alexa排名/收录量/PageView
>  内存/ CPU
> Delphi盒子                        ASP/SQLServer           21.05w   /3.57w
> /3w                     1GRAM/NA
> 好看簿                             Django                          16.9w
>  /7.05w /NA                     3服务器
> JavaEye                         ROR                                     2w
>       /24.6w/15w                     4G
> 豆瓣(2006数据)      Quixote                         NA       /NA   /30w
>               NA
>
> 备注:
> 好看簿
> 虽然具体流量不清楚,但参考Alexa的排名,流量应当在10w以下。
> 这个最早是有木头那听来的,知道是Django做的。今天在网上看到好看簿的介绍,说换了3台服务器。
> 对于创业期的网站来说,如果不是处于性能原有,应当不会如此奢侈。
> 因此猜测在单服务器时候,负载已经不太低了。
>
> Delphi盒子
> 这个不属于WEB2.0页面交互比较少,因此数据库访问应当不会太过频繁。
> 仅仅做参考。
>
> JavaEye
> 这个大家应当都比较熟悉。关于JavaEye的流量站长大人自己说得最清楚了。
> HP DL145 G1,两路AMD Operton 2GHz CPU, 4G DDR RAM, 73G SCSI 15k Disk
> Linux Kernel-2.6.7,lighttpd-1.4.13,MySQL-5.0,ruby-1.8.4(GC patch)
> 由于网站的访问量大部分集中在早上9.00到晚上9.00这12个小时的范围内
> 。因此可以大致粗略的认为12小时处理12万动态请求,平均每小时处理1万动态请求,也就是说平均每秒处理3个动态请求。
>
> 服务器的平均CPU使用率在繁忙的时候,大概15%左右,MySQL数据库繁忙的时候平均每秒发送超过100条SQL语句,24小时平均每秒发送45条SQL语句。硬盘IO非常少
>
> 豆瓣
> WEB2.0的代表,通是使用python开发。阿北在豆瓣的早期有谈论过豆瓣的性能问题。
> 现在cpu使用15%左右。每天30万页访问(白天每秒10次的样子),100%是动态页面。服务器的访问响应时间平均仍在0.05秒以下。
> 加上所有的封面照片,是有几十个G。不过这些不在数据库里。数据库现在有5G,
> 最多的是书的信息(40多万条)和用户收藏和评价(50多万条)。这个不包括冗余。
> mysql用了innodb和myiam. 读/写频繁的用innodb, 读多写少、写多读少(比如log)或者需要full text
> index的用myiam. replication/cluster还没有,不过很快会有。现在每晚用mysqldump做backup.
>
> --
> Blog http://vicalloy.spaces.live.com/
> My googlepage http://vicalloy.googlepages.com/
> OldPhoto http://www.lzpian.com/
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20071209/51b19e10/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年12月09日 星期日 14:19

Romit m_list在126.com
星期日 十二月 9 14:19:20 HKT 2007

John fractal 写道:
> 我不认为django一定就是低效率,但对于要多个表格join来join去的数据库结
> 构,django的orm基本不可用了。最近尝试用django做 jxc得出的结论 :(
>
> On Dec 6, 2007 7:08 PM, vicalloy <zbirder在gmail.com
> zbirder在gmail.com>> wrote:
>
>     前言
>     使用Django开发WEB2.0的同学注意了,Django很可能存在性能问题,而且是
>     灾难性的。(和算命先生一样,先吓唬吓唬人,哗众取宠)
>
>     问题
>     WEB2.0提倡的是用户交互,因此WEB2.0站点不可能和传统站点一样,将大部
>     分的页面都静态化。在频繁的交互中,数据库的访问必不可少。但Django的O/R
>     Map实在让人没底。
>     Django的O/R Map使用方便,但基本是个黑盒,难以进行优化。也许有人说
>     优化是以后的事。但很多时候在最开始没有留下优化的余地,到真正需要优
>     化的时候将苦不堪言。
>     对数据库的优化主要有减少数据库的访问和sql优化。将少数据库的访问可
>     以通过cache等方式实现,这部分应当都一样,没有太多可以讨论的。对于
>     SQL 的优化,Django的O/R
>     Map实在封得太多,似乎也不存在太多优化余地,只能将O/R Map换成SQL。
>     但O/R Map在一定程度上是一种设计思想,将一个已经上线的O/R Map换成
>     SQL并不会是一件很轻松的事。
>     分表也是常用的数据库优化方式,像Hibernate还可以使用Native Sql实现
>     对分表的支持,但Django就不行。这时候有得换成Sql。
>     等改完后,原先优美的代码都已经变得惨不忍睹了。
>
>     相关数据
>     Django的应用中一直没有出现过什么大流量的网站。Django的普及程度可以
>     说明一定问题,但或许Django本身就不适合做这个。
>     由于我并没有什么大流量的django站点,因此我的数据只能从网上找了。
>     PS:我的小站,使用的是Bluehost主机中最便宜的一款,虽然没什么流量,
>     但我进管理平台的时候几乎100%的500错误。
>
>     网站名称                    使用技术                    Alexa排名/
>     收录量/PageView    内存/ CPU
>     Delphi盒子                        ASP/SQLServer           21.05w  
>     /3.57w /3w                     1GRAM/NA
>     好看簿                             Django                        
>      16.9w    /7.05w /NA                     3服务器
>     JavaEye                         ROR                              
>           2w       /24.6w/15w                     4G
>     豆瓣(2006数据)      Quixote                         NA       /NA
>       /30w                     NA
>
>     备注:
>     好看簿
>     虽然具体流量不清楚,但参考Alexa的排名,流量应当在10w以下。
>     这个最早是有木头那听来的,知道是Django做的。今天在网上看到好看簿的
>     介绍,说换了3台服务器。
>     对于创业期的网站来说,如果不是处于性能原有,应当不会如此奢侈。
>     因此猜测在单服务器时候,负载已经不太低了。
>
>     Delphi盒子
>     这个不属于WEB2.0页面交互比较少,因此数据库访问应当不会太过频繁。
>     仅仅做参考。
>
>     JavaEye
>     这个大家应当都比较熟悉。关于JavaEye的流量站长大人自己说得最清楚了。
>     HP DL145 G1,两路AMD Operton 2GHz CPU, 4G DDR RAM, 73G SCSI 15k Disk
>     Linux Kernel-2.6.7,lighttpd-1.4.13,MySQL-5.0,ruby-1.8.4(GC patch)
>     由于网站的访问量大部分集中在早上9.00到晚上9.00这12个小时的范围内。
>     因此可以大致粗略的认为12小时处理12万动态请求,平均每小时处理1万动
>     态请求,也就是说平均每秒处理3个动态请求。
>     服务器的平均CPU使用率在繁忙的时候,大概15%左右,MySQL数据库繁忙的
>     时候平均每秒发送超过100条SQL语句,24小时平均每秒发送45条 SQL语句。
>     硬盘IO非常少
>
>     豆瓣
>     WEB2.0的代表,通是使用python开发。阿北在豆瓣的早期有谈论过豆瓣的性
>     能问题。
>     现在cpu使用15%左右。每天30万页访问(白天每秒10次的样子),100%是动
>     态页面。服务器的访问响应时间平均仍在0.05秒以下。
>     加上所有的封面照片,是有几十个G。不过这些不在数据库里。数据库现在
>     有5G, 最多的是书的信息(40多万条)和用户收藏和评价(50多万条)。这个不
>     包括冗余。
>     mysql用了innodb和myiam. 读/写频繁的用innodb, 读多写少、写多读少(比
>     如log)或者需要full text
>     index的用myiam. replication/cluster还没有,不过很快会有。现在每晚
>     用mysqldump做backup.
>
>     --
>     Blog http://vicalloy.spaces.live.com/
>     My googlepage http://vicalloy.googlepages.com/
>     OldPhoto http://www.lzpian.com/
>     _______________________________________________
>     python-chinese
>     Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Unsubscribe: send unsubscribe to  
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
Django的问题:模型更改是一场灾难(权限系统污染等等),与数据库的兼容性
差,模板选择余地少,等等总之这个东东不适合中小型企业,个人玩玩还可以,用
过以后感觉就是一个垃圾产品。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号