在Windows中Raketesting非常慢

为什么Ruby和Ruby on Rails(1.8.6一键安装程序,本地数据库)在Windows上如此红润缓慢?

  • ruby脚本/服务器 – 30秒
  • 耙testing – 45秒
  • 等等

然而,当我popup一个慢得多的linux盒子时,它实际上是瞬间的。 我已经检查了一切 – 没有重要的CPU进程运行,没有networking问题…等等。

哎呀,我会很高兴只是一个详细的输出,至less告诉我它在哪里崩溃。 有什么build议么?

一般来说,Ruby的MRI解释器只是没有针对Windows上的速度进行优化。 您也可以在开发模式下在Windows和其他机器上的生产模式下运行它。 Rails在开发模式下运行速度要慢得多,因为它会在每个请求中重新加载所有的类。

1.8.6是一个非常古老的红宝石版本。 近3年前发布。 您应该强烈考虑升级到1.9(或至少1.8.7)。 或切换到JRuby。 所有这些选项都可能会显着提高性能。

1.8.7应该完全兼容1.8.6。 1.9有一个全新的解释器,运行速度提高了2.5倍(尽管它偶尔会在Windows上崩溃)。 JRuby可能是您理想的解决方案,因为您可以在1.8或1.9的兼容性下运行它,并且它非常稳定,但它不支持C扩展的gem并需要不同的数据库适配器。

最后一个选择是尝试在CentOS或其他Linux发行版中运行VMWare内部的Rails。

原因在于Windows中的文件统计信息速度非常慢,而且由于Ruby是在Linux上编写的(针对Linux进行了优化),所以没有太多的工作可以加快速度。

使用rubyinstaller.org(1.8.6或1.9.x)可以使它更快 – 我建议1.8.6,因为1.9有一些自己的减速。

如果你想要变得非常激进,你可以试试我的faster_gem_script gem,它试图缓存基于需求的查找,从而加快速度。 做一个红宝石的草稿版本,虽然:)

不幸的是,Jruby也不以其极快的查找而闻名。 希望这种情况有一天会改变。 在那之前,我的faster_gem_script和faster_require是我知道尝试获得一些加速的唯一方法。

为了加速,你可以尝试我的装载器调速器鞋面(帮助铁轨运行速度更快): https : //github.com/rdp/faster_require结帐spork,在瞌睡工作,jruby也运作良好。

-rp

更新:部分感谢Luis Lavena在Fenix上的一些非常棒的工作,Ruby 1.9.3-p327在Windows上的速度快得多。 rake在1.9.3-p125上用了110+秒,现在在p327上花了20秒。 Rails终于可以在Windows上使用了!

使用RubyInstaller来安装..

我喜欢采取这种方法:

缓慢的铁轨堆栈

在我的情况下

 finisher_hook: 22.463 sec 

这是罪魁祸首