fashioncj
V2EX  ›  Android

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

  •  
  •   fashioncj · Nov 8, 2015 · 13254 views
    This topic created in 3858 days ago, the information mentioned may be changed or developed.

    我写了个爬虫类应用,在爬取几十万条数据后数据库写入的地方就会内存不足了。
    具体表现就是 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 replies    2015-11-10 14:16:24 +08:00
    gamexg
        1
    gamexg  
       Nov 8, 2015
    感觉需要检查内存泄漏问题。
    实在不行多进程,然后定时重新启动 work 进程。
    Radiums
        2
    Radiums  
       Nov 8, 2015
    这个没办法的,最好还是及时清理资源。
    zzzmode
        3
    zzzmode  
       Nov 8, 2015
    手机上跑爬虫还存到 sqlite 里面么。。
    fashioncj
        4
    fashioncj  
    OP
       Nov 9, 2015
    @zzzmode android 写的比较顺手。。
    fashioncj
        5
    fashioncj  
    OP
       Nov 9, 2015
    @Radiums 一般用什么来判定是否需要清理了
    Radiums
        6
    Radiums  
       Nov 10, 2015
    自己决定对象的生命周期啊。一般 Activity 关闭的时候就可以清理掉,或者链接数据接收完了也要 close
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3262 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 14:06 · PVG 22:06 · LAX 07:06 · JFK 10:06
    ♥ Do have faith in what you're doing.