预加载没有Rails的类?

时间:2011-07-21 15:40:54

标签: ruby performance spork

我正在开发一个大项目,我意识到有几个组件是类组,我可以将其转换为Rails中的服务和剥离。但是现在我已经完成了这一点,我意识到没有Spork加载类的速度慢并不是Rails缓慢的功能,但是Ruby的功能很慢。是否有类似Spork的东西可以在非Rails项目中使用?

1 个答案:

答案 0 :(得分:2)

Spork应该适用于任何ruby项目,它只需要更多设置。

假设您正在使用rspec 2.xspork 0.9,请制作一个类似于spec_helper.rb的{​​{1}}。

require 'spork'

# the rspec require seems to be necessary, 
# without it you get "Missing or uninitialized constant: Object::RSpec" errors
require 'rspec' 

Spork.prefork do

  # do expensive one-time setup here
  require 'mylibrary'
  MyLibrary.setup_lots_of_stuff

end

Spork.each_run do

  # do setup that must be done on each test run here (setting up external state, etc):
  MyLibrary.reset_db

end

Spork.prefork块中的所有内容只会运行一次(在spork启动时),其余的将在每次测试调用时运行。

如果您有很多特定于框架的设置,那么最好为您的库制作AppFramework。有关示例,请参阅padrino AppFramework