我尝试了所有这三种方式(Ubuntu 版本是通过 VirtualBox 以 XP 作为主机,但我为映像提供了系统的所有可用 RAM)。加载 rails 环境需要 30-60 秒。rails 控制台、rake test:units - 任何需要 rails 加载的东西。而且不只是第一次 - 每次都是这样。我甚至用过自动测试看看它是否有助于缩短单元测试的执行时间,但事实并非如此。每当我更改一个测试时,它仍然需要 30 秒来加载它们,然后大约需要 4 秒才能执行。
有没有其他人遇到过这个问题?有没有人想出办法来解决这个问题?
答案1
查看http://github.com/rdp/faster_require或者在运行 Linux 的虚拟机中运行它。
答案2
加载所需的时间可能受必须加载的依赖项数量的影响。也许您的 Rails 应用程序依赖于许多 gem,这会大大减慢加载时间。
通常用于缓解该问题的解决方案是:
- 对于生产实例(处理网络流量),许多网络服务器(例如独角兽)可以使用写时复制进行预加载和分叉,这样加载只需进行一次(其他实例将引用同一内存,直到它们开始更改内容)。这样做通常是为了重新启动其中一个进程(可能是由于崩溃)不会使用过多的额外服务器资源
- 为了测试目的,请参阅快速 Rails 命令,建议使用 zeus、spring 或 spork 宝石。这将使 ruby/rails 进程的后台副本保持运行以处理您的 rails 测试。