EnterpriseにおけるRuby適用実践 ~Webアプリケーションにおける各Ruby処理系の性能評価~ 2015年1月 日本OSS推進フォーラム アプリケーション部会 (株)日立ソリューションズ 技術開発本部 Rubyセンタ 三好 秀徳 Copyright 2015 Japan OSS Promotion Forum 1.Rubyとは A PROGRAMMER'S BEST FRIEND まつもとゆきひろ氏によって開発 が行われているプログラミング 言語 シンプルかつエレガントな文法を 持ち、高い生産性を誇る Webフレームワーク Ruby on Railsによって認知が広まる Copyright 2015 Japan OSS Promotion Forum 1 2.各Ruby処理系 数多くあるRuby処理系 Ruby処理系 特徴 CRuby Ruby処理系のデファクト・スタンダード C言語で実装されている 同時に1スレッドしか動かない JRuby Java言語で実装されている 同時に複数スレッドを実行可能 Rubinius Ruby言語で実装されている 同時に複数スレッドを実行可能 IronRuby .NET Framework上で動作するRuby MacRuby Objective-Cで実装し、OS X上で動作するRuby 性能面(メモリ・処理時間)でどのRuby処理系を使うと良いのか? Copyright 2015 Japan OSS Promotion Forum 2 3.CRubyとJRubyの紹介 CRuby C言語で実装されたRuby処理系 Ruby処理系のデファクト・スタンダード 同時に1スレッドしか実行できない JRuby Java言語で実装されたRuby処理系 多くのRubyライブラリ以外にJavaライブラリも動作する 同時に複数スレッドを実行可能 Copyright 2015 Japan OSS Promotion Forum 3 4. ベンチマークソフトの結果紹介(メモリ) CRubyに比べJRubyは2.5倍~40倍以上メモリを消費する Copyright 2015 Japan OSS Promotion Forum 4 5.ベンチマークソフトの結果紹介(処理速度) CRubyが早いケース CRubyに比べ、このプログラムでは JRubyは約50倍以上遅い Copyright 2015 Japan OSS Promotion Forum 5 6.ベンチマークソフトの結果紹介(処理速度) JRubyが早いケース CRubyに比べこのプログラムでは JRubyは約10倍速い Copyright 2015 Japan OSS Promotion Forum 6 7. ベンチマークソフトの結果まとめ ベンチマークソフトの実行結果 メモリは、JRubyで動かすと大量に消費する 処理速度は、プログラム依存 JRubyで動かすと大幅に早くなるものも一部存在 Webアプリケーションではどのような結果が出るのか? メモリは、JRubyで動かすと大量に消費するのでは? 処理速度は、JRubyで動かすと大幅に早くなるか大幅 に遅くなるかのどちらか? Copyright 2015 Japan OSS Promotion Forum 7 8. 作成したWebアプリケーションの紹介 参照系Webアプリケーション リクエストごとにランダムにレコードを参照 表示するレコード件数は一定(1,000件) id : 1,5,30,124, ... 1,000 records 10 リクエスト/秒 50,000 リクエスト id : 3,13,48,132, ... 1,000 records Copyright 2015 Japan OSS Promotion Forum 8 9.測定結果(メモリ使用量) メモリ使用量に大きな差は発生せず Copyright 2015 Japan OSS Promotion Forum 9 10.測定結果(Webアプリ処理時間・起動直後) 起動直後はJRubyが圧倒的に遅い Copyright 2015 Japan OSS Promotion Forum 10 11.測定結果(Webアプリ処理時間) 時間が経過するとJRubyが早くなるケースが増える Copyright 2015 Japan OSS Promotion Forum 11 12.まとめ メモリ使用量 Webアプリケーションにおいて、JRubyはCRubyより多くメモリ を使用するが、差は僅か Webアプリケーション内部の処理時間 起動直後、JRubyは処理時間が非常にかかる JRubyは処理時間がかかる時とかからない時の差が激しい ガーベージコレクションの影響 リクエストを流し続けると、JRubyはCRubyより早いケースが 増えてくる Copyright 2015 Japan OSS Promotion Forum 12 13.今後の課題 パラメータチューニングの実施 JVMパラメータのチューニング ガーベージコレクションの回数を削減 テストパターンの増加 更新系(登録・更新・削除)の処理を追加 バッチ系アプリケーションでの施行 Copyright 2015 Japan OSS Promotion Forum 13 Javaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 .NET Framework は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。 Objective-CとOS Xは、米国Apple Inc.の米国およびその他の国における商標または登録商標です。 その他、記載の商品名、会社名は、それぞれの会社の登録商標または商標です。 Copyright 2015 Japan OSS Promotion Forum 14 補足.測定結果(Webアプリ処理時間) JRubyは処理時間がとる範囲が広い CRubyと比べると処理時間 がとる範囲が大きすぎる のブレ幅が大きすぎる Copyright 2015 Japan OSS Promotion Forum 15
© Copyright 2025 ExpyDoc