1

割り当てたメモリと、いつ解放する必要があるかがわかっている場合。Java でガベージ コレクションを無効にできますか?

アプリのメモリ要件を 1 MB 未満にしたいだけです。

ガベージの作成を無効にしてから収集するオプションが必要だと思います。ゴミは絶対に持ちたくない。

さらに、ガベージ コレクションは依然としてリークを残すため、Java GC の場合と同様に、通常の C プログラムでリークを見つけるのは面倒です。

ゴミは自分で処理させてください..

4

3 に答える 3

2

割り当てたメモリと、いつ解放する必要があるかがわかっている場合。Java でガベージ コレクションを無効にできますか?

ガベージは、メモリが不足した場合にのみトリガーされます (同時コレクターを除く)。大量のガベージを作成せず、メモリが不足しない場合は、GC は必要なく、実行されません。

アプリでこれを行う理由はわかりません。この手法は、GC を最小化または回避するために高頻度の取引で使用されますが、アプリのポイントがわかりません。

アプリのメモリ要件を 1 MB 未満にしたいだけです。

これは、環境が hello world プログラムを実行するのにこれだけの量を使用するため、非常に困難です。アプリケーションはこれだけ追加できます。

ガベージの作成を無効にしてから収集するオプションが必要だと思います。ゴミは絶対に持ちたくない。

ガベージを保持したくない場合は、ガベージ コレクターが必要です。自分でリサイクルする場合、GC は必要ありません。

さらに、ガベージ コレクションは依然としてリークを残すため、Java GC の場合と同様に、通常の C プログラムでリークを見つけるのは面倒です。

GC は C プログラムのようにリークすることはなく、メモリはいつでも回復できます。Java では、「メモリ リーク」とは、メモリ使用量の望ましくない増加を意味します。

ゴミは自分で処理させてください..

誰もあなたを止めていません。

于 2013-07-04T06:20:58.213 に答える
1

あなたの管理下にないガベージコレクターはありません。

メモリを解放するのは dalvik VM の仕事です。

このリンクを確認できます

http://developer.android.com/training/articles/perf-tips.html

不要なオブジェクトの作成の回避のトピックを確認してください。

また、メモリ リークが発生しないようにコーディングする必要があります。

GCを無効にすることは可能ですが、なぜそれをしたいのですか?(私はそれを認識しておらず、GCを無効にすることは可能だとは思いません)。GC はメモリを解放します。GC を無効にした場合、ガベージ コレクションはどのように行われますか。

于 2013-07-04T05:32:34.583 に答える
0

あなたができるデストラクタに最も近いこと:

myObject = null;

System.gc();

しかし、それはお勧めできません。

私は、GC が何も知らないネイティブ ピアを持つ一部の Java クラスについてもっと心配しています。Bitmap.recycle()ビットマップが不要になったときに常に呼び出す必要があるなど

于 2013-07-04T06:20:44.430 に答える