Java VMのチューニング

JBossでいくつか大きなシステムを運用しているんですが、同時アクセス数と1アクセスあたりのサーバー仕事量が多いので、なんとかチューニングできないかとここ数日格闘しています。

例えば、10フィールドぐらいある20オブジェクト(行)を取得して、WebServiceで通すまえに書式を整える作業をする部分があります。Reflectionを使いすぎの300msからスタートして、10ms、さらには2msまで高速化することができました。

GCのチューニングから開始したんですが、それほどのパフォーマンスは向上させることができませんでした。そこでどのようなコードを書いたらインタプリタが高速に処理をできるのか、勉強を始めました。

Performance Documentation for the Java HotSpot VM

大きな決め手は繰り返し発生する処理の、コンパイルを促す、ということです。これはここに例が載っています。ポイントは、インタプリタに予測させやすくすることです。ぜひいろいろ試してみましょう。


db4o Japanese Community
http://www.db4o.com/japan/
japan@db4o.com