Windows上的Rails非常慢(rails -v需要4秒钟)

我正在使用Rails版本3.0.3和ruby版本1.9.2p136(2010-12-15)在英特尔Core 2 Duo 2,6 Ghz与4 GB内存和Windows Vista Business SP2与运行没有其他(重)应用程序。 我已经读过,在Windows上的rails开发比在unices上慢,大多数人在那里不推荐,但这是愚蠢的。

我想不出使用4秒来显示一个简单的版本号的任何好的理由。 而轨道生成需要10秒钟才能完成!

在我的设置中的东西一定是错的(至less我希望)。

有人一个好主意如何进行? 提前致谢!

有几个关键点可以产生你注意到的慢速性能。

  • Ruby IO性能(在任何版本上)比Linux相比要慢3倍。 这是因为Ruby的Windows代码库中有几个未优化的跳转。 这需要进一步的分析,调查和优化,直到今天才完成。
  • Ruby 1.9.2需要每个文件产生几个stat()调用,这可能会增加Ruby本身的速度。 这在Ruby 1.8.6或1.8.7中不存在。 这也解决了Ruby 1.9.3(trunk)还没有发布。
  • 像Rails这样的项目需要大约500个文件,结合上面的要点,使得Ruby for Windows成为众多人们所看到的。

现在,有一些解决方法,一些简单和一些复杂的。

  1. 回到Ruby 1.8.7而不是Ruby 1.9.2。 这将为您的应用带来一定程度的速度。 除非你正在利用Unicode支持,那么1.8.7可以为你工作。
  2. 看看像Spork这样的工具,为您的RSpec /黄瓜提供场景/分叉
  3. 使用像ImDisk这样的RAMDisk将您的开发移到RAM中。 移动Ruby和你的应用程序到它和加载的时间将减少(这也与你的可用RAM相关)

希望这些选项中的一些帮助你。

在Ubuntu虚拟机中使用Ruby比在Windows上直接使用它更快。

一个好的选择是使用Vagrant:在Windows IDE上开发,文件与Ubuntu VM“共享”,运行“vagrant ssh”,然后运行“rails server”或者任何你想运行的命令。 还有其他的好处:

  • 您不需要安装RVM,或切换红宝石版本,只需使用每个项目的虚拟机。 虚拟机可以很小,如500MB的数据,使用高达100MB的RAM,但是YMMV
  • 你不需要担心宝石与Windows的兼容性

看看: http : //www.vagrantup.com/

反病毒很可能影响它。 这与Vista的速度问题相结合可能会影响它。 我同意正义,在虚拟机上运行Linux。

你可以尝试玩ruby的垃圾收集器来使ruby更快,因为默认的变量设置不匹配窗口的工作方式看这里也许这将有助于一点点

垃圾收集器性能调整

为了加速,你可以尝试我的装载器调高器(帮助轨道在Windows中跑得更快): https : //github.com/rdp/faster_require

另外结帐spork,在Windows中工作,jruby也很好。