新手问题 ruby 的性能问题。

hiluluke · 2014年05月19日 · 最后由 putty 回复于 2014年05月20日 · 7763 次阅读

学生对学习一门新语言的忧虑

最近玩了玩 github 然后在里面了解到 ruby 下了几本书看了看。然后觉得太酷了。 但是呢。。。看了几篇文章 ruby 的性能有点。。。 当然那些测试都是 1.8 版本的 ruby。不知道现在 ruby 的性能和 php 以及 Python 比咋样。 求大牛解释下,看我要不要继续学习。

Ruby 性能不咋滴,但这不是学习一门语言唯一的考虑。

先不说 Ruby 有啥性能问题,想问下楼主学习一门语言跟这门语言的性能有啥关系?

这是“性能病”,得治,自从学了 Ruby,胃口好了,腿也不抽筋了。

#2 楼 @neverlandxy_naix 学语言是拿来用的。语言是工具,当然可以爱这个工具而忽略它的缺点。但是现在的我的问题是它会不会影响到实际应用。我已经放低姿态虚心请教。。。但是你的口气好像要开始喷人了。

不妨以讨论的姿态。你们一上来就喷人。那这社区也够 low 的。

嗯。。。以偏概全。有些人 low

可以先看看之前的 讨论

学 C,效率秒杀这些语言

速度是慢,不过足以撑到你拿他挣大钱了吧,关键还是看产品本身啦。

这真不能算喷,楼主做的功课太少了。这就好比你买 iphone 之前去问别人 cpu 是不是最快,会不会影响实际应用。

最近的版本比 python 的某些版本还慢一点。php 如果用 facebook 的编译版本还是很快的。如果你在寻找性能比较快的语言,选择 ruby 是不对的。结论应该是不继续。

#12 楼 @billy 我就是不太了解。过来问啊。。。就好比,我不懂来问你一个问题。你回头直接一个煞笔。。。你受得了?

其实上面这些人都不是真的要喷你,他们都非常幽默,跟你开玩笑的,不必当真,如果你真的遇到具体问题,愿意回复你,帮你解决问题的,其实也还是这些人。

普遍的看法是承认 Ruby 语言的性能不好,但是享受用 Ruby 语言快速开发应用和产品的过程,且 Ruby 语言的性能并没有差到无法忍受的地步,Ruby 语言性能差?是的,是否值得学?是的,是否值得用?是的。

性能差的原因还是没有好的架构。@shiningray 可以做出来网站承载日百万 PV.所以性能嘛。这个因人而异的感觉。

这也算喷,LZ 你也太玻璃心了吧。。。

Ruby 的性能问题真是论坛的日经贴了,我记得以前看到这样一句话:大部分人的编程能力和项目规模都远远达不到需要考虑语言性能的地步。作为用 Ruby 做了几个小玩意儿的菜鸟,反正我是感觉不到 Ruby 的性能有多差。

当然,如果你非得要纠结于这个问题,我的回答是不继续。

那啥。。。不是我玻璃心。也不是开不起玩笑。主要是前面几个哥们儿,啥东西也没说,就一个有病,一个反问来着。。。逼格过高。不太喜欢。

#20 楼 @hiluluke 他们都是论坛的活宝,都是很可爱的人,时间长了你就知道他们了,都非常不错的人呢。

#20 楼 @hiluluke 理解理解,这种帖子论坛上太多了,所以大家回复的时候都会抱着调侃的态度,习惯就好了~

或许是我标题取错了。对于语言的忠诚可能就像自家老婆一样。容不得讨论。我到个歉别影响心情。

#23 楼 @hiluluke 安啦安啦。他们没吐槽你啊 - - 经常这种的。你泡多了就习惯了。哈哈

@hiluluke Ruby 给人性能慢的感觉是主要是版本 1.8。但是 1.9,2.0,2.1 性能有了很大提高。现在网上的很多评论也是用 1.8 来说事儿,容易给人误导。

总体来说:Ruby 1.9.x 以及后续版本 和 Python 的性能不分伯仲。放心使用就 OK。

@hiluluke 在性能敏感的场合,也可以用 C/C++ 给 Ruby 写扩展。

#26 楼 @skandhas 在性能敏感的场合,也可以用 C/C++ 给 Ruby 写扩展。 +1

不要想一门语言解决一切,不同层次的问题拿不同层次的东西解决才是正道。

Ruby 就是多快好省解决多数高层次麻烦。碰上性能问题了,你就降维用个 C 啥的搞个扩展。或者拿其他性能更好的语言写个扩展通过 socket 调用或者别的什么办法。

别自己限死自己了,那是 Java 党。

我靠

Ruby 性能不咋滴,但这不是学习一门语言唯一的考虑。

1 楼回答得还不够客观冷静清晰?

#28 楼 @Rei 没说你。。。

多谢。已决定学习。其实之前在多看买了本代码的未来。就想学了。

Ruby 的社區裏對性能不怎樣在乎,PHP 有 HHVM,Python 有 PyPy。相反 Rubinius 沒聽過有 Production Running,反而 Enterprise 都去 JRuby。 你看 Web Framework Benchmark,其他 Framework / Languages 有許多人去微調,Ruby Rails 反而仍然行 Ruby 1.9.....也沒人理......

语气不好,向楼主道歉,真是调侃的语气,再次抱歉

@hiluluke 你缺乏基本的常识和逻辑 @Rei #28 楼的回复是说 前三楼中个 1 楼回答得得体、客观、冷静。而你一直纠结这个社区装 b,low 等等,果然一大帮人过来安慰你的玻璃心了。这样就真的舒服了?

性能差时相较而言的 未到不能用的地步 我公司的社区网站就是基于 rails 的 学生的话推荐你去看看《黑客与画家》里面有提到一个观点就是性能这个东西越来越不重要 因为硬件在进步 提供的性能也基本是拿来“浪费”而已 今天的 office 和 90 年代功能上来说究竟有多大进步?但是却吃掉多少性能?

性能很差,楼主可以学习 Go

#32 楼 @winnie 哈哈 笑点不一样的人真是难交流啊

樓主,這種一搜一大把的問題有人回答你已經不錯了,

#33 楼 @robot_zhang 真心不想打口水帐。你说我玻璃心也成。你说我反应过激也成。。。但是呢。基本的常识和逻辑这个基本的程度词是不是太广了。。。还有我也没有纠结社区装 b 和 low。。。你主观成份太多了。。。另外也没人安慰我吧。。。大家都是在交流。。。最后我也给可能造成一些人心情不适的人说了对不起了。你还要骂我。我只能说“嗯。。。骂得好!”

#35 楼 @nouse go 的学习资源太少了。看了 goweb 编程。发现不系统,里面讲好多包我有找不到手册。然后在看 programming ruby,挺系统的书,入门也较简单。

#37 楼 @blacktulip 好像是一搜一大把,先是手机上的 ruby-china 没搜到。。。

@hiluluke 其实我的意思是你喜欢就学,不喜欢就不学,自己开心就行,跟这个语言的性能好不好好像没太大的关系。真心没有喷 LZ 的意思

先不说 Ruby 有啥性能问题,想问下楼主学习一门语言跟这门语言的性能有啥关系?

这是个问题吗

一门语言的性能要看它的实现,与这门语言没关系。如果想学习它来找工作或者用来做大型的项目,那么要考虑性能问题。

ruby 可以打主力,但是在某些特殊情景里面,最好还是请其他语言帮个忙。现在我做东西是这样的。

I don't care. 😄

又开贴讨论这个问题。。。。。。累觉不爱。

就这三个来讲,Ruby(MRI) 和 (C)Python、PHP 性能是半斤八两,属于同一梯队的。

我觉得楼主既然是来提问的,态度可以好一点嘛~

#1 楼 @Rei #2 楼 @neverlandxy_naix 是中肯地回答楼主的问题。 #3 楼 @winnie 套用广告词,显然是开玩笑。

结果我看到楼主在 #5 楼 就非常不开心了,这样今后还有谁敢来回答问题呢?

反正呢,我提一个问题,有人花时间给我回复,我是很感恩的。大家都不是仇人,相聚 ruby-china 是种缘分,语言可能真的不是问题,好的社区才更重要。不管如何,实际结果是有人花了时间,来回答你的问题。

所以呢,欢迎来到 ruby-china 大家庭哈。

跟 php python 的性能差不多。比 c java 甚至 node 都慢的多。 任何时候,性能优异都有其价值。作为工程技术人员,理应在性能方面有所追求。但这确实不是 ruby 擅长的所在,但 php python 在这方面也不构成优势。

真心劝楼主不要花时间去讨论语言性能的伪命题了。 以前我非常讨厌 JAVA,崇拜 C/C++(我是一只写 C/C++ 很多年了,当然我现在也写,工作中写),很多人也是基于 C/C++ 性能卓越的观点,现在再回过头来看看,发现自己真的弱爆了。其实语言只是一种用来实现你的想法的工具而已,选择哪种语言,要根据项目组的现有资源和实际情况来选(技术传教士除外)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号