java のパフォーマンスのガイドライン

AIX® での Java™ パフォーマンスは、いくつかの方法で向上させることができます。

  • 最終的にはガーベッジ・コレクションを行う必要の生じるオブジェクトを不必要に作成するのを避けるために、過度の文字列操作を行う場合、 文字列連結ではなく StringBuffer 機能を使用してください。
  • ストリング操作、テキスト・フォーマット設定、および出力のコストを削減するために、Java コンソールへの過剰な書き込みを回避します。
  • 必要なときにプリミティブ型の変数を使用することによって、 オブジェクトの生成と処理にあまりコストがかからないようにしてください。
  • 使用頻度の高いオブジェクトをキャッシュに入れて、 必要なガーベッジ・コレクションの量を減らし、 オブジェクトを再作成しなくても済むようにしてください。
  • 可能な場合は、ネイティブ操作をグループ化して、Java Native Interface (JNI) 呼び出しの数を減らします。
  • 同期されたメソッドは必要なときにだけ使用して、 JVM およびオペレーティング・システムでのマルチタスキングを制限してください。
  • 必要でない限り、ガーベッジ・コレクターを呼び出さないようにします。 呼び出す必要があるときには、アイドル時間中だけ、 あるいはクリティカルでないフェーズでのみ、呼び出してください。
  • 32 ビット・オペレーションは 64 ビット・オペレーションより速く実行されるので、 可能な限り long 型ではなく int 型を使用してください。
  • 可能な限り、メソッドは最終的なものとして宣言してください。 最終的なメソッドは JVM によって、より適切に処理されます。
  • 変数を初期化する必要がある回数を減らすために、定数の作成時に static final キーワードを使用します。
  • Java でのキャストは実行時に行われるため、不要な「キャスト」および「instanceof」参照は避けてください。
  • 配列で用が足りる場合にはいつでも、ベクトルは使用しないでください。
  • ベクトルの端に項目を追加したり、 そこから項目を削除したりしてください。
  • ループ内でのオブジェクトの割り当ては避けてください。
  • バッファー入出力を使用し、バッファー・サイズを調整してください。
  • データベース・アクセスに対して接続プールと cached-prepared ステートメントを使用してください。
  • データベースに対して接続プールを使用し、繰り返して接続をオープン/クローズしないで、 接続を再利用してください。
  • スレッドの作成および消滅のサイクルを最大化、最小化してください。
  • 共用リソースの競合を最小化してください。
  • ライフの短いオブジェクトの作成は最小にしてください。
  • リモート・メソッド呼び出しは避けてください。
  • ブロック化リモート・メソッド呼び出しを避けるためにコールバックを使用してください。
  • メソッドのアクセスにのみ使用するオブジェクトの作成は避けてください。
  • synchronized メソッドはループの外に出してください。
  • 文字列および文字データはユニコードとしてデータベースに保管してください。
  • CLASSPATH を並べ変えて、最も頻繁に使用されるライブラリーが前にくるように再配列してください。