Windows中的耙测试非常慢

时间:2010-03-06 04:54:53

标签: ruby-on-rails windows ruby

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

  • ruby​​脚本/服务器 - 30秒
  • rake test - 45秒

然而,当我弹出一个慢得多的Linux机箱时,它几乎是瞬间完成的。我已经检查了所有内容 - 没有重要的CPU进程在运行,没有网络问题......等等。

哎呀,我很高兴看到一个冗长的输出,至少告诉我它在哪里崩溃。有什么建议吗?

4 个答案:

答案 0 :(得分:7)

一般来说,Ruby的MRI解释器并没有针对窗口速度进行优化。您可能还在其他计算机上的Windows vs生产模式下以开发模式运行它。 Rails在开发模式下运行得慢得多,因为它会在每次请求时重新加载所有类。

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

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

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

答案 1 :(得分:2)

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

使用rubyinstaller.org(1.8.6或1.9.x)可以加快速度 - 我推荐1.8.6,因为1.9自身有一些减速。

如果你想要变得非常积极,你可以尝试我的faster_gem_script gem,它试图缓存基于需求的查找,从而加快速度。不过用ruby的划痕版本来做,但是:)

不幸的是,Jruby的查找速度非常快。希望有一天这种情况会改变。在那之前,我的fast_gem_script和faster_require是我所知道的尝试获得加速的唯一方法。

对于加速,您可以尝试我的装载机调速器上部(帮助导轨在打瞌睡时跑得更快):https://github.com/rdp/faster_require 另外,在打瞌睡中工作的结帐spork,jruby也很好。

-rp

答案 2 :(得分:1)

更新:感谢(部分)Luis Lavena对Fenix的一些非常出色的工作,Ruby 1.9.3-p327在Windows上更快,很多rake过去需要花费110多秒才能在1.9.3-p125上执行,现在在p327上需要大约20秒。 Rails最终可以在Windows上使用!!

使用RubyInstaller安装..

答案 3 :(得分:1)

我喜欢采用这种方法:

slow rails stack

就我而言

finisher_hook: 22.463 sec

那是罪魁祸首