我该怎么做才能加速Rails开发模式?

use*_*154 10 windows development-environment ruby-on-rails

开发模式下的Rails是SLOW.非常非常慢.我运行Vista,然后我config.cache_classes = true进入development.rb......但是,它仍然很慢,我必须在更改代码后重新启动服务器.

我的同事在Mac上开发Rails,并看到类似的缓慢.

我的开发时间显着减慢,因为测试代码更改需要几分钟.

这和Rails开发一样好吗?或者我错过了一些能让它变得快速,生活幸福的东西?

Ric*_*lan 26

rails-dev-boost插件加速了Rails开发模式.我遇到了同样的问题,这个插件让我的应用程序非常活泼(相比之下,每页只有少量第二次加载).它将以与生产类似的速度运行!

http://github.com/thedarkone/rails-dev-boost

要安装它:

script/plugin install git://github.com/thedarkone/rails-dev-boost
Run Code Online (Sandbox Code Playgroud)


Jef*_*ire 7

你在说:

  • 启动应用程序的速度很慢(比如运行脚本/服务器)?

    如果它是服务器启动,那么你使用的服务器是什么?根据我的经验,webrick慢于mongrel慢于瘦.对于本地开发来说,乘客确实是最有效的(尽管我从来没有试过让它在Windows上运行).


  • 点击开发服务器的页面响应缓慢?

    这可能是效率低下的数据库查询,视图中的计算过多可能会被重做等等.如果它在生产中运行正常,这可能不是您的问题.但是,您运行的Web服务器也会在本地产生差异.我认为启动的相同顺序也适用于执行.


  • 耙任务永远开始?

    我也遇到过这个问题.如果你有一个包含大量插件的大型项目(这意味着需要运行大量的初始化),那么可能需要一段时间来提升rails环境.有些东西可能会加速它,但没有银弹.确保您没有安装任何不再使用的插件,请仔细查看您的环境和初始化程序,以确保其处于良好状态等.


最重要的是,说"Rails开发缓慢"并没有真正指出问题所在.如果您可以澄清什么是缓慢的,那么您可以获得特定的帮助来加快速度.我曾参与许多大型项目,这些项目在开发和生产方面都遇到了性能问题.如果给予正确的关注,我从未遇到过无法改善的情况.找出问题所在,您通常可以诊断出更好的解决方案,以加快速度.


ask*_*egg -17

Andrews-MacBook-Pro:Sites askegg$ rails test
Andrews-MacBook-Pro:Sites askegg$ cd test
Andrews-MacBook-Pro:test askegg$ ./script/generate model test
      exists  app/models/
      exists  test/unit/
      exists  test/fixtures/
      create  app/models/test.rb
      create  test/unit/test_test.rb
      create  test/fixtures/tests.yml
      create  db/migrate
      create  db/migrate/20090812005217_create_tests.rb
Andrews-MacBook-Pro:test askegg$ ./script/performance/benchmarker 1000000 Test.new
            user     system      total        real
#1     25.140000   0.200000  25.340000 ( 25.549605)
Run Code Online (Sandbox Code Playgroud)

嗯。在加载了 12 个其他程序的 MacBook Pro 上,在开发模式下实例化 100 万个对象需要 25 秒。我觉得还可以。

  • 所以你是说我应该欣赏 Rails 应用程序在幕后处理的巨大复杂性,为我提供流畅的开发体验,并将缓慢的开发服务器时间视为一个非常好的权衡的一小部分? (3认同)
  • 一点也不。我正在证明 Rails(至少在我的机器上)一点也不慢。我刚刚在最近完成的一个项目上运行了另一个测试(在开发模式下)——它在 0.271 秒内加载了 1,000 个对象。这与 8 秒的加载时间相去甚远。您的配置有问题,所以这确实不是 Rails 特定的问题。 (3认同)