1
HowardMei OP |
2
HowardMei OP |
3
ayanamist 2011-12-17 21:23:40 +08:00
说django慢是共识,那些用django不慢的都是hack的一塌糊涂的,你只能说他们用了django的代码组织形式而已。
|
4
HowardMei OP 先把数据库访问这个最大瓶颈解决掉才能怪django吧,disqus就搞了个单独的monkey patch:
https://github.com/disqus/django-db-utils 把database access解放出来,自己动手hack 用其他框架,很多东西要自己搭,还不保证没有问题隐患,花的时间不一定少于hack django |
5
HowardMei OP 可惜他家开源的只是个小小的patch,不过问题是django模版什么的真是性能瓶颈么?
|
7
lijia18 2011-12-18 00:12:48 +08:00
估计Disqus的Django改的只剩下url路由了。
|
8
mywaiting 2011-12-18 00:32:32 +08:00
赞 +1
|
9
CMGS 2011-12-18 00:36:13 +08:00
国内某山用django也就用django的request和response,还有url路由做gateway。。。
|
10
clc3123 2011-12-18 19:12:58 +08:00
Rails也是啊,你不hack,不动架构,不换组件,快不起来啊。
|
11
HowardMei OP @ayanamist 可是目前看来发展最好的还是Django,想想在用户上万之前基本不用考虑性能问题,除非你用特别垃圾的服务器挑战自己的hack实力。舍不得花小钱的结果,就是把个系统搞得一塌糊涂,到处都是hack,最后维护成本飙升。成功的商业应用,服务器成本应该是占比微不足道的,人力成本才是大头。
|
12
ohhe 2011-12-21 00:44:27 +08:00
先上线再hack。据说Google刚上线的时候,page和Brin写的代码烂的一塌糊涂。
|
13
Ricepig 2011-12-21 00:46:42 +08:00
rails比django传说还要慢。。。
不过据说语言慢一点没关系,因为主要问题在数据库和io |
14
lanwen2005 2011-12-21 00:53:42 +08:00
性能不是主要的问题,rails的好处就是结构灵活,重构容易,hack容易。除了那种上亿级别的没经历过我不敢说。
但是一般性互联网项目,把数据库跟缓存做好就能解决主要问题了。 数据库包括最基本的表结构设计(适当冗余),索引,使用各种内置orm时候注意sql的问题,有些可以直接用sql替代。 缓存主要是缓存方式,缓存策略。memcache来做。 nginx方面根据实际情况做配置优化(一些基本参数) 然后就是应用服务器的配置。 语言层面的那点性能差别真的完全可以忽略了。 |
16
huacnlee 2011-12-21 09:10:45 +08:00 via Android
楼上几位谁告诉你Rails慢啊!慢是因为你们不会用。完全无需hack之类的
|
17
clc3123 2011-12-21 20:52:27 +08:00
@huacnlee @Los
Ruby自身慢都是不争的事实了,再放在帖子预设的背景(大型网站,新浪?QQ游戏?)下,Rails不做一些调教肯定快不起来。 1.就说分库分表,我简单玩了下,rails确实有些方法可以调用,但却是十分的偏门。另外,在我使用的方法中,migration貌似不能用了,这得hack一下吧,但也可以手工管理数据库。 2.比如说有个开放平台什么的,你提供对外的用户验证什么的服务,那我想是不是应该从原先的rails中剥离User这一块,放到个单独的rack服务中来更快点?这算是动架构了吧? 3.如果为了团队开发协调之便,将不同类型业务分成多个rack或sinatra app挂载到主干rails中,你想为他们提供个统一的remember me功能和逻辑,你可以用warden,你可以说他是个gem,但我更加觉得这是人家hack后贡献出来的。 4.据我所知,rails 3.1之前有人已经做了http streaming,这算是动了rails的view组件吧? 5.用thin来做异步操作,但是我发现rails正常用法下有些不兼容(忘记具体场景了),sinatra没问题,我估计也要hack。。。 6.ruby-china用的mongoid,这个几乎把active-record扔掉了吧? 小弟才疏学浅,上面说的不对,请指教。其中有些纠结于定义和个人见解的言论,比如什么是hack,也请不要太认真了。 |
18
Los 2011-12-21 21:11:44 +08:00
@clc3123 照你的说法,估计我喜欢在系统中用上redis估计也是hack了,用上resque做异步任务也是改了架构了,使用metal或者多个rack做api输出之类的绝对是改了架构,用gem cells进行更细化的view输出管理绝对是没天理的将rails改得面目全非了,加上omniauth gem进行支持QQ微博,新浪微博,renren之类的登录将rails又hack了N多,但无法否认,达到你说的大型网站新浪,QQ游戏?之类的流量的站点我不敢保证以自己的技术水准能支持得起来,但谁在乎呢?那时候钱够多了。
|
19
huacnlee 2011-12-21 21:12:56 +08:00
@clc3123 这问题我觉得永远也撤不清的,你上面所说的 hack 定义和我想的的有很大的差距,在我看来你上面说这些 hack 都是必然的做法,随遍那个框架都需要怎么做。
另外纠正一点,ruby-china 用 Mongoid 纯粹和 ActiveRecord 没有多大关系,只是尝试而已,ActiveRecord 也是很快的。 总之我说阐述的意思是, Rails 并不慢! |
20
weihuilee 2011-12-21 21:39:13 +08:00
一句话,谁用谁知道。 很多东西道听途说,是很不正确的方式。
|