0
我與6個CSV文件,每個包含一個對象的屬性工作加快DB對象創建的紅寶石。我一次只能閱讀一份,但將每一份文件拆分成一個線程並行執行的想法非常有吸引力。使用線程
我已經創建了一個數據庫對象,其具有用於在每次固定物體的陣列(沒有關係的DB或奧姆斯允許)。我已經嘗試了以下操作來使每個CSV同時打開並初始化,但是已經看到對速度沒有影響。
threads = []
CLASS_FILES.each do |klass, filename|
threads << Thread.new do
file_to_objects(klass, filename)
end
end
threads.each {|thread| thread.join}
update
end
def self.load(filename)
CSV.open("data/#{filename}", CSV_OPTIONS)
end
def self.file_to_objects(klass, filename)
file = load(filename)
method_name = filename.sub("s.csv","")
file.each do |line|
instance = klass.new(line.to_hash)
Database.instance.send("#{method_name}") << instance
end
end
我該如何加速紅寶石(MRI 1.9.3)?這對Rubinius來說是個好例子嗎?