V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fashioncj
V2EX  ›  Android

如何获取当前应用的 GC 状态

  •  
  •   fashioncj · 2015-11-08 13:02:07 +08:00 · 9483 次点击
    这是一个创建于 3329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我写了个爬虫类应用,在爬取几十万条数据后数据库写入的地方就会内存不足了。
    具体表现就是 GC 没有足够的空间 free 了


    11-07 19:06:00.124 4513-4513/? D/dalvikvm: GC_FOR_ALLOC freed 3686K, 4% free 253818K/262096K, paused 331ms, total 331ms
    11-07 19:06:00.124 4513-4513/? I/dalvikvm-heap: Forcing collection of SoftReferences for 65548-byte allocation
    11-07 19:06:00.492 4513-4513/? D/dalvikvm: GC_BEFORE_OOM freed 12K, 4% free 253805K/262096K, paused 368ms, total 369ms
    11-07 19:06:00.492 4513-4513/? E/dalvikvm-heap: Out of memory on a 65548-byte allocation.
    11-07 19:06:00.492 4513-4513/? I/dalvikvm: "main" prio=5 tid=1 RUNNABLE
    11-07 19:06:00.492 4513-4513/? I/dalvikvm: | group="main" sCount=0 dsCount=0 obj=0xa6168938 self=0xb938b8e8
    11-07 19:06:00.492 4513-4513/? I/dalvikvm: | sysTid=4513 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=-1217142624

    11-07 19:06:00.492 4513-4513/? I/dalvikvm: | state=R schedstat=( 21780042297254 539894211055 24789799 ) utm=1791565 stm=386574 core=0

    所以我想动态的获取 GC 状态,让他快满的时候程序先停止一下。。不知道是否可行。

    6 条回复    2015-11-10 14:16:24 +08:00
    gamexg
        1
    gamexg  
       2015-11-08 13:08:35 +08:00
    感觉需要检查内存泄漏问题。
    实在不行多进程,然后定时重新启动 work 进程。
    Radiums
        2
    Radiums  
       2015-11-08 15:58:40 +08:00
    这个没办法的,最好还是及时清理资源。
    zzzmode
        3
    zzzmode  
       2015-11-08 20:50:19 +08:00
    手机上跑爬虫还存到 sqlite 里面么。。
    fashioncj
        4
    fashioncj  
    OP
       2015-11-09 00:03:53 +08:00
    @zzzmode android 写的比较顺手。。
    fashioncj
        5
    fashioncj  
    OP
       2015-11-09 00:04:13 +08:00
    @Radiums 一般用什么来判定是否需要清理了
    Radiums
        6
    Radiums  
       2015-11-10 14:16:24 +08:00
    自己决定对象的生命周期啊。一般 Activity 关闭的时候就可以清理掉,或者链接数据接收完了也要 close
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.