【问题标题】:dalvik doesn't seem to be growing the heapdalvik 似乎没有增加堆
【发布时间】:2013-10-23 20:46:06
【问题描述】:

我有一个 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,实际上这只是一个很小的起点...

谢谢

【问题讨论】:

    标签: java garbage-collection heap-memory dalvik


    【解决方案1】:

    Dalvik VM 的策略是使堆大小尽可能小。由于每次收集都会释放 1.8MB,它可能为自己感到自豪。

    如果您看到大量此类消息,则仅表示您正在分配和丢弃大量内存,并且活动是正常的。您可以采取任何措施来减少内存流失。

    【讨论】:

      【解决方案2】:

      不知道 Dalvik,但是可以通过-Xmx100M 配置一个普通的 JVM 来吃 100 MB。 IIUYC 你有足够的可用内存,所以不需要运行 GC。 OTOH,GC 工作效率很高,因此无需申请更多内存。由于手机是相当受限的设备,因此 Dalvik 运行保守并不让我感到惊讶。

      This question 显示如何增长堆。

      【讨论】:

        猜你喜欢
        • 2020-08-05
        • 2014-01-23
        • 2017-05-16
        • 2021-09-20
        • 1970-01-01
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多