瞎扯淡 Rails Is Not For Hello World Benchmarking

hooopo · 2012年11月25日 · 最后由 tonyseek 回复于 2012年11月26日 · 2866 次阅读

总能看到一些框架或语言和 Rails 的性能测试对比。虽然没人去了解这样的对比是否公平或对比的结果有任何意义,但是大家都记住了“Rails 性能很差”的结论。

我想说,Rails 不适合这种 Hello World 级别的性能 PK,而这种 PK 也毫无意义。原因如下:

  • Rails 作为一个全栈式框架提供了很多便于开发/调试的方面的特性,比如 Reloading、Logging、DebugException、Instrumentation 等。

  • Rails 遵循 Security By Default 原则,比如模板里自动过滤 HTML 标签、CSRF 防御、IP spofing 防御、自动过滤 JSON 输出里的 HTML 标签、自动 SQL 注入防御等

  • Rails 提供大量缓存功能。

  • 各种其他特性

上面这些特性在测试 Hello world 程序基本是没有用的,造成为额外的开销,但是在实际的项目需不需要大家心里清楚。

顺便推荐一下这篇:http://www.unlimitednovelty.com/2012/08/debunking-nodejs-gish-gallop.html

很同意这种 PK 没有意义的看法,一般做这种比较的,都是不成熟的开发者

得到靠谱的性能测试结果很不容易,不光是 rails,基本上很多测试都是这样一个模式:

  • 对 A 很熟悉,听说很多人推荐 B
  • 担心 B 有性能问题,搭建测试环境
  • 不了解 B,所以没有优化
  • 得出结论:A 完爆 B,over

这里的 A、B 可以是 ——

  • php vs RoR
  • linux vs windows
  • nginx vs lighttpd
  • nodejs vs 各种语言的事件驱动框架

...

有趣的是,上述 A、B 换一下位置的场合也有不少

所以还是得以案例来说话

所以只给结果不发布测试过程的评测都是耍流氓嘛

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