代码之家  ›  专栏  ›  技术社区  ›  thekingoftruth

我们可以得到Ruby和Rails的性能统计数据吗?我们在劝说生意人使用铁轨!

  •  4
  • thekingoftruth  · 技术社区  · 15 年前

    我们正在说服我们的产品主管我们想在轨道上使用JRuby,我们很难得出一些统计数据,这些数据表明:

    1. 使用Rails比使用Struts或Zend框架等工具的编码时间要短。
    2. Ruby(尤其是JRuby)的性能不再可怕了。
    3. Rails的性能也不错。

    如果你能尽快给我们一些好的数据,我们就有机会了!

    更新:

    实际上,我们说服了企业在Rails上使用JRuby,现在我们已经进入项目几个月了。谢谢你的帮助!

    4 回复  |  直到 14 年前
        1
  •  3
  •   Michael    15 年前

    即使1很明显是真的,也很难量化它。一个糟糕的度量,但我能想到的最好的是代码的相对gzip大小:

    http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=yarv&lang2=java

    Ruby代码包含了Java代码的“信息”的一半。我已经做了几年的Rails和许多其他框架,但几乎不可能量化,因为我从未用两种语言/框架编写过相同的项目。

    不过,有一件事在图中没有说明,那就是Ruby不能进行编译器时间检查,所以您通常需要有更好的测试覆盖率,以便对所部署的代码有信心。

    1. Ruby的性能在性能方面已经取得了飞跃。当你将它与任何东西进行比较时,它仍然是不好的,但是对于一个网络前端来说,它确实没有那么重要。JRuby比Ruby(1.8。x)要快,但仍然远离静态类型的JVM语言(Scala/Java等)。

    2. 老实说,Rails对于一个框架来说是非常慢的。不过,计算的沉重程度有助于实现疯狂的发展速度。对于前端来说,这也没什么关系。

    您的前端框架/语言选择只会为每个请求增加大约10毫秒的时间。如果你的应用程序对数据做了任何重要的处理,那么前端演示/呼叫不会占用大部分请求时间。

    这几乎都是关于权衡和什么是/不重要的。老实说,前端语言的计算速度并不重要,像Ruby这样的“较慢”语言的生产率提升通常会超过您放弃的东西。

        2
  •  2
  •   ohho    15 年前

    如果你想在原始速度方面用Rails来打赌PHP代码,那就忘记它吧。

    业务决策关注的不仅仅是原始脚本速度,即:

    • 互操作性,你的新应用会有多好 适合 在企业应用程序环境中
    • 连续性,有多少其他员工知道(采用)像你这样的铁路,如果没有铁路,你有多可能招募更多的人,如果你三个月后就走了呢?
    • 安全性,不仅仅是Rails的安全性,还关系到任何问题的修复速度有多快,谁来解决这个问题?
    • 可靠性,恢复。等。

    你还需要更多的关注:

    • 部署,mod ou rails就在这里,但它仍然不能像php那样直接前进,您需要管理团队的承诺。
    • 可伸缩性,可能不需要担心,当你有和tweetie一样多的流量时,你将得到重建它的预算;-)

    我们知道我们都喜欢铁轨。很多人还没有。我们去布道吧;—)

        3
  •  1
  •   Toby Hede    15 年前

    提供具体信息很难。性能真正取决于应用程序的用例和体系结构。

    我建议您对一个特定用例的不同版本进行分析并度量性能。它可以是一个非常简单的视图,点击数据库并呈现页面。使用相同的数据库结构。

    具有讽刺意味的是,PHP也不是块上最快的东西。在非平凡的应用程序中,您需要开始添加加速器来缓存字节码。JVM对这种东西有着难以置信的高级支持。基于应用服务器方法的Rails体系结构可以解决很多问题,因为实际上您有一个应用程序范围的内存范围(PHP需要解析和呈现每一个过程中的所有内容)。

    总之,根据我自己的经验,我从2000年开始就使用了PHP,几年前回到了1.0版之前的Rails),并且在生产中使用了大型系统。

    • 我发现铁轨 许多的 发展更快。我发现它的效率提高了50%,这取决于它的功能。在这方面,我可以在一半的时间内发展。
    • 我有大量使用数据库的生产Rails系统,可以在200-300毫秒内呈现。
    • Rails生态系统在支持优秀软件工程所需的所有辅助系统和过程方面比PHP早得多。像cumber和rspec这样的库在Ruby世界中发展起来,这绝非偶然。
        4
  •  0
  •   troelskn    15 年前

    嗯,有 Lies, damned lies, and statistics

    你的问题是,在语境之外回答是不可能的。红宝石是 通常地 不是一种特别快的语言,但它完全取决于你在做什么。你为什么要用速度来衡量质量?您的应用程序是否在做一些资源密集型的工作?

    关于开发时间,我想说Rails是一个经过验证的快速开发堆栈。但是PHP也是。哪个更好,很大程度上取决于程序员。