为什么Ruby和Ruby on Rails(1.8.6 One Click Installer,本地数据库)在Windows上如此红润?
- ruby脚本/服务器 - 30秒
- 耙子测试 - 45秒
- 等等
然而,当我弹出一个慢得多的linux盒子时,它几乎是瞬间完成的。我已经检查了所有内容 - 没有重要的CPU进程在运行,没有网络问题......等等。
哎呀,我很高兴看到一个冗长的输出,至少告诉我它在哪里崩溃。有什么建议么?
为什么Ruby和Ruby on Rails(1.8.6 One Click Installer,本地数据库)在Windows上如此红润?
然而,当我弹出一个慢得多的linux盒子时,它几乎是瞬间完成的。我已经检查了所有内容 - 没有重要的CPU进程在运行,没有网络问题......等等。
哎呀,我很高兴看到一个冗长的输出,至少告诉我它在哪里崩溃。有什么建议么?
一般来说,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倍(虽然它偶尔会在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也因其超快的查找而闻名。希望有一天这种情况会改变。在那之前,我的fast_gem_script和faster_require是我知道尝试获得一些加速的唯一方法。
为了加速,您可以尝试我的装载机调速器上部(帮助导轨在打瞌睡时跑得更快): https://github.com/rdp/faster_require 还有结账的spork,在打瞌睡,jruby也很好。
-rp
更新:感谢(部分)一些非常出色的工作 菲尼克斯 作者:Luis Lavena,Ruby 1.9.3-p327很多, 许多 在Windows上更快。 rake
用于在1.9.3-p125上执行110秒以上,现在在p327上需要大约20秒。 Rails最终可以在Windows上使用!!
使用 RubyInstaller 安装..