论坛首页 编程语言技术论坛

用rails 3的有没有想过退回到2.3的

浏览 18231 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-27  
到底好不好,慢不慢,你还是自己去实践实践吧。别看了几篇BLOG就说这也不好,那也不行。天天还有人嚷着JAVA要死了呢,你看人家还不是活的好好的。我没上过3.1,但从我的小站在3.X上运行的情况来看,3.X并没有你想象的那么慢。
0 请登录后投票
   发表时间:2011-06-27  
花花知道在鸡眼网发贴 是多么徒劳的事了吧
0 请登录后投票
   发表时间:2011-06-27   最后修改:2011-06-27
rails很多地方做的很不好。比如关于form,routes等,太多的语法糖,同一个东西写法太多,过于花哨,不实用。带来的是学习上的成本提高,而没有任何一点好处。

真的慢了好多。不过还没开始用r3

http://blog.tstmedia.com/news_article/show/86942

引用
A simple reproducible benchmark shows ActiveRecord 3.0.7 to be 1.43 times slower than ActiveRecord 2.3.2.
4 请登录后投票
   发表时间:2011-06-27   最后修改:2011-06-27
的确是慢了,刚好有个项目从2.3.9升级到3.0.5的,简单对比下db和routes的:

for 2.3.9:
  development:
    time rake db:version
      real	0m24.219s
      user	0m10.152s
      sys	0m2.971s

    time rake routes
      real	0m19.710s
      user	0m10.089s
      sys	0m2.713s
  
  production:
    time rake db:version RAILS_ENV=production
      real	0m20.110s
      user	0m12.217s
      sys	0m2.592s
    
    time rake routes RAILS_ENV=production
      real	0m19.384s
      user	0m12.109s
      sys	0m2.600s


for 3.0.5:
  development:
    time rake db:version
      real	0m41.514s
      user	0m26.641s
      sys	0m3.403s

    time rake routes
      real	0m34.094s
      user	0m27.760s
      sys	0m3.100s

  production:
    time rake db:version RAILS_ENV=production
      real	0m26.630s
      user	0m20.295s
      sys	0m2.643s
    
    time rake routes RAILS_ENV=production
      real	0m24.340s
      user	0m21.401s
      sys	0m2.547s



在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪

肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
0 请登录后投票
   发表时间:2011-06-27  
R3.1上,coffeescript和scss这两个变化我个人情感上很喜欢,但是目前是项目里还基本忽视,类似的锦上添花的变化每次都有一些。

我觉得ActiveRecord/association,engine和route的变化比较值得关注。

只是一些方法变化太大,主要还有一些明显的bug,让人觉得很不舒服。
0 请登录后投票
   发表时间:2011-06-27  
3.1 coffee这东西把gem去掉就ok了,generate的时候就不会生成有关coffee的东西
0 请登录后投票
   发表时间:2011-06-27  
从rails2.3到3.1,我觉得很多地方越来越好。
易用性方面:
引用
Bundler
ActiveRecord 的新 Query API
ActiveRecord 的新 Validation API
Block Helper
UJS
新的 Routing API
新的 ActionMailer
Rails console默认输出SQL query log
Custom ActiveRecord Attribute Serialization


解耦合方面:
引用
Mountable Engines
Template Inheritance
ActiveModel


安全方面:
引用

XSS
ActiveModel::SecurePassword
Rack::SSL

性能方面:
引用
HTTP Streaming
SQL Prepared statements
Rack::Cache
ActiveRecord Identity Map


还有就是修复若干bug
当然目前各种测试表明,rails3的性能确实不如rails2.3。据说rails3.2要优化性能和内存使用情况(好像3.0的时候就提过..)。
我觉得从框架本身上提升rails性能空间有限,rack就是rails性能的极限,但是rack/sinatra的性能和nodejs的框架比起来还差得远。


0 请登录后投票
   发表时间:2011-06-27  
rainchen 写道
的确是慢了,刚好有个项目从2.3.9升级到3.0.5的,简单对比下db和routes的:

for 2.3.9:
  development:
    time rake db:version
      real	0m24.219s
      user	0m10.152s
      sys	0m2.971s

    time rake routes
      real	0m19.710s
      user	0m10.089s
      sys	0m2.713s
  
  production:
    time rake db:version RAILS_ENV=production
      real	0m20.110s
      user	0m12.217s
      sys	0m2.592s
    
    time rake routes RAILS_ENV=production
      real	0m19.384s
      user	0m12.109s
      sys	0m2.600s


for 3.0.5:
  development:
    time rake db:version
      real	0m41.514s
      user	0m26.641s
      sys	0m3.403s

    time rake routes
      real	0m34.094s
      user	0m27.760s
      sys	0m3.100s

  production:
    time rake db:version RAILS_ENV=production
      real	0m26.630s
      user	0m20.295s
      sys	0m2.643s
    
    time rake routes RAILS_ENV=production
      real	0m24.340s
      user	0m21.401s
      sys	0m2.547s



在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪

肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。


这个时间大部分都是ruby的加载文件所花的时间,和rails性能没多少关系。当然这个会影响开发体验。
ruby1.9.2的require性能问题已经解决了:http://www.rubyinside.com/ruby-1-9-3-faster-loading-times-require-4927.html
0 请登录后投票
   发表时间:2011-06-27  
wenyiyun 写道
yehuda的胡子还嫩着呢,我猜他的计算机功底是一坨狗屎,纵然他又搞JS又搞html。

这是冷笑话么
0 请登录后投票
   发表时间:2011-06-27  
以我的经历来说,Rails3.0看了下,我觉得内部结构优化的不错,但没有任何让我换版本的动力。毕竟jquery早有插件可以支持,ActiveRecord我也没需求换成其他的,反而要连带命令变更、接口变更等的麻烦,于是继续用Rails 2.3.

但是,3.1的出现,Rails让人提神的东西又出现了。scss虽然本来也就存在,但和rails框架内的结合还是3.1做的好,asset变成头等公民的意义重大。coffeescript值不值两说,但反正可以直接在里面写js,Rails3.1为此提供了一个良好的什么代码放在什么位置的惯例和框架,这是很棒的。同样在view层面,还支持了view模板的继承,终于开始有一个框架把写OO代码常用的思想运用到view层去了,这是了不起的创举。动手写网页的人都明白,写web应用最费时间的就是view层。另外几个层面老实说已经解决的算不错了,但view层基本被动的很少。Rails3.1在这方面做出了突破。

说道性能,Rails3主要搭配ruby1.9了,不知道1.9@3.1 vs 1.8@2.3性能如何。无论如何,这一点确实挺让人郁闷的,从各种言论来看,rails3的性能提升确实不佳。

但是,提神的东西超过让人郁闷的东西,老的项目我是不想折腾,继续2.3。新的项目那肯定直接上3.1了。

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics