ある関数をチューニングするために、つぎのような計測用のスクリプトを作成しました。
require 'benchmark' annotations_collection = JSON.parse File.read(ARGV[0]) annotations_collection.each { _1.deep_symbolize_keys! } project = Project.find_by(id: 1) Benchmark.bmbm do |x| x.report("instantiate_and_save_annotations_collection") do 10.times do project.instantiate_and_save_annotations_collection annotations_collection end end end
ファイルから読み込んだJSONファイルを処理する時間を計測します。
チューニング対象はRailsアプリケーション内のクラスなのでrails runner
で実行します。