私はJRubyとRailsのパフォーマンスの問題を多くの運をせずに診断しようとしています。遅い基本操作JRuby rakeタスク
私は基本的に、JRuby on Rails 5アプリケーションを用意しています。このアプリケーションは、レーキタスクでプロセスを開始します。レーキタスクのいくつかをテストするとき、MRIルビーで書かれた以前のスクリプトと比較して大幅に減速し、bundle exec ruby <script>
コールを使用して実行しました。
レーキタスクのコンテキストでの文字列、配列、数値などの基本操作は、5〜6倍遅くなります。
jruby -G performance_test.rb
:これを実行している間
Rehearsal ------------------------------------------
double 27.570000 0.630000 28.200000 (27.714908)
-------------------------------- total: 28.200000sec
user system total real
double 28.050000 0.750000 28.800000 (29.864897)
:
bin/rake performance_test:start
performance_test.rakeである:
namespace :performance_test do
desc 'Test Performance'
task :start do
Benchmark.bmbm do |x|
x.report ('double') do
100_000_000.times do
"Hello world!"
end
end
end
end
end
これらの結果を生成し、例えば、この簡単なテストを受けますperformance_test.rbは次のとおりです。私が利用可能であり、任意の運なしでこの上の情報の検索、ほぼすべてのJVMとJRubyのオプションを試してみた
Rehearsal ------------------------------------------
double 4.930000 0.240000 5.170000 ( 5.639570)
--------------------------------- total: 5.170000sec
user system total real
double 4.420000 0.180000 4.600000 ( 5.538717)
:
require 'require_all'
require 'bundler'
Bundler.require(:default)
require_all Dir.glob('lib/extensions/*.rb')
Benchmark.bmbm do |x|
x.report ('double') do
100_000_000.times do
"Hello world!"
end
end
end
は私にこれらの結果を提供します。私がこの根本的な原因に遭遇し、問題を解決する方法を知ることができれば素晴らしいだろう。
Hey Charles!これを見て時間をとってくれてありがとう。私はJRuby 9.1.7.0と一緒に走りました。結果は間違いなく私が期待していたものと一致しています。 PS私はバグとして提出しただろうが、それはそれのための適切な場所のように見えなかった:) –