私は、HerokuのRails 4.2アプリで、ActiveAdminでSQLステートメントを実行して100万件以上の請求レコードのリストを取得する方法を持っています。Rubyのベンチマークでは2秒かかるのですが、本番コンソールでクラッシュするのはなぜですか?
user system total real
study_run: 0.000000 0.000000 0.000000 ( 0.002124)
私はsome_methodを実行しよう:私はレールの生産コンソールでのRubyのベンチマークライブラリを介して、その上でベンチマークを行うと、私は次のように周りに2.1秒を取ってもらう
def some_method
BillingRecord.select(<<-SQL.sub(/\n$/, '')
billing_records.first_name as name,
billing_records.email as email
#some more sql with joins
SQL
)
レール製作コンソール、コンソールがクラッシュするだけです。だからRubyのベンチマークは2.1秒だと主張していますが、コンソールで実行するとクラッシュするのですか?それがクラッシュしていると私はの実数の測定時間が2.1秒をはるかに上回っていると思います。
編集:私はベンチマークに使用されるコード:
Benchmark.bm(10) do |r|
r.report("study_run:") { some_method }
end
2.1秒ではなく、2.1ミリ秒です。私はあなたのベンチマークに何か問題があるかもしれないと思うか、または1M行を検索するために2.1ミリ秒が雷の速さになるので、生産と同じ数のレコードを取得していないと思います。 – engineersmnky
はい、それは私が理解しようとしていることです... – Nona
あなたのベンチマークはどのように見えますか? –