-4

コンテキストは次のとおりです。JavaEE5。

巨大なアプリを実行しているサーバーがあります。クラスをリファクタリングする必要があります。これにより、CPU時間(十分な時間)と引き換えに、メモリフットプリントが低くなります(可能な限り低くなります)。

ビット演算を使用して、複数のブール値、ショート、またはバイトをintに詰め込む方法をすでに知っています(たとえば)。

文字列で何をするか、どのコレクションを使用するのが良いか、その他あなたが知っていることなど、他の最適化のアイデアが必要です。

Thx、君たちは支配する!

4

2 に答える 2

2

Javaのメモリ効率に関するこのPDFは、興味深いかもしれません。

特に、標準的なコレクションは膨大なメモリの浪費のようです。ただし、マイクロ最適化を実行する前の最初のステップは、アプリケーションのプロファイルを作成し、ヒープダンプを作成して、これらを分析することです。

于 2012-02-03T15:20:53.657 に答える
1

考慮すべき点がいくつかあります

  • オブジェクトの処理が完了し、スコープ内に残る場合は、オブジェクトをnullに設定します
  • 文字列を連結する代わりに、StringBuilder(またはスレッドセーフが必要な場合はStringBuffer)を使用します。

ただし、メモリ使用量がそのような問題である場合は、コードのアーキテクチャ上の問題である可能性があります。

于 2012-02-03T15:05:05.067 に答える