1

実行中の dalvik のインスタンスがあります。

/system/bin/dalvikvm ... -Xmx100m ...

memmap は次のようになります。

b01f6000-b05b7000 rwxp 00000000 00:04 4635       /dev/ashmem/dalvik-heap (deleted)
b05b7000-b65f6000 ---p 003c1000 00:04 4635       /dev/ashmem/dalvik-heap (deleted)

しかし、GC が常に実行されているため、これらのメッセージが大量に表示されます。

<dalvikvm> GC_CONCURRENT freed 1880K, 52% free 1882K/3843K, paused 5ms+9ms
<dalvikvm> GC_CONCURRENT freed 1882K, 52% free 1881K/3843K, paused 5ms+9ms
<dalvikvm> GC_CONCURRENT freed 1881K, 52% free 1881K/3843K, paused 6ms+9ms
<dalvikvm> GC_CONCURRENT freed 1880K, 52% free 1882K/3843K, paused 5ms+8ms
<dalvikvm> GC_CONCURRENT freed 1882K, 52% free 1881K/3843K, paused 6ms+9ms
<dalvikvm> GC_CONCURRENT freed 1880K, 52% free 1882K/3843K, paused 5ms+9ms
<dalvikvm> GC_CONCURRENT freed 1882K, 52% free 1881K/3843K, paused 6ms+9ms

十分な空きメモリがあります:

MemFree:          496056 kB

私が疑問に思っているのは、なぜヒープが 4MB でスタックしているように見えないのかということです... ?

ところで、私は本当に100MB必要ですが、実際にはそれはほんの小さな出発点です...

ありがとう

4

2 に答える 2

3

Dalvik VM のポリシーは、ヒープ サイズをできるだけ小さく保つことです。収集するたびに 1.8MB を解放しているので、おそらくかなり自慢しています。

これらのメッセージが大量に表示される場合は、大量のメモリを割り当てて破棄していることを意味し、アクティビティは正常です。メモリチャーンを減らすためにできることは何でもここで役立ちます.

于 2013-10-24T01:04:50.217 に答える
0

Dalvik についてはわかりませんが、通常の JVM は-Xmx100M100 MB を消費するように構成できます。IIUYC には十分な空きメモリがあるため、GC を実行する必要はありません。OTOH、GC は効率的に機能するため、より多くのメモリを要求する必要はありません。携帯電話はかなり制約のあるデバイスであるため、Dalvik が保守的に動作することは驚くことではありません。

この質問は、ヒープを増やす方法を示しています。

于 2013-10-23T22:08:36.520 に答える