長命のオブジェクトがたくさんある(何百万もの)アプリケーションのヒープサイズの使用を最適化するにはどうすればよいですか? (ビッグキャッシュ、DBからレコードをたくさんロード)Javaアプリケーションのメモリを効率的にするにはどうすればよいですか?
- 避けて右のデータ型を使用します
- 値が事前にわかっている場合はenumを使用する
- オブジェクトプールを使用する
- String.intern()(良いアイデア?)
- ロード/ Iは、一般的なプログラミングやJava、特定の答えを探していますあなたは
を必要とするオブジェクトのみを保持します。ファンキーなコンパイラスイッチはありません。
編集:
は、ヒープ内の数百万回を表示することができPOJOのメモリ表現を最適化します。
ユースケース(のPOJOに変換)
- ロードメモリ内の巨大なcsvファイル
- 利用答えのデータベース
再開からレコードの百万を取得するために休止状態:
- フライウェイトパターンを使用
- コピーライト
- 3つのプロパティを持つ10Mオブジェクトを読み込む代わりに、サイズ10Mの3つの配列(または他のデータ構造)を持つ方が効率的ですか?それは、詳細な提供には少し難しいよう
... :) –
私はアセンブラが役立つだろうことを疑う - 開発時間が大幅に長くなり、クロスプラットフォームではないでしょう。 ;) – Fortyrunner
@Fortyrunner私はDesmondが冗談を言っていたと思う。 –