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

use*_*471 25 ruby windows ruby-on-rails windows-vista

我正在使用rails版本3.0.3和ruby版本1.9.2p136(2010-12-15)在Intel Core 2 Duo 2,6 Ghz上使用4 GB Ram和Windows Vista Business SP2而不运行其他(重型)应用程序.我已经读过Windows上的rails开发速度比Unices慢,大多数人都不建议这样做,但这很愚蠢.

我想不出使用4秒显示简单版本号的任何好理由.并且rails生成需要长达10秒才能完成!

我的设置中的某些东西一定是错的(至少我希望如此).

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

Lui*_*ena 20

有几个关键点组合起来产生你注意到的缓慢性能.

  • 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/Cucumber提供方案/分支
  3. 使用像ImDisk这样的RAMDisk将开发移动到RAM .将Ruby和您的应用程序移动到它,加载时间将减少(这也与您的可用RAM相关)

希望其中一些选项对您有所帮助.

  • 只是为了节省一些新人:ImDisk可能对你在Ruby 1.9.3上的数字没有任何影响.我们有一组在Linux上花费100秒的测试,它们在Windows,ram磁盘或没有ram磁盘上仍然需要超过2,000秒. (2认同)

car*_*ini 7

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

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

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

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