Skip to content Skip to sidebar Skip to footer

Is Android Garbage Collector Pausing Other Apps While Running?

I've found some information about the Android garbage collector that are contradictions to me. Android Devevelopers Guide says: Android 3.0 is the first version of the platform de

Solution 1:

The Dalvik VM in the Gingerbread and beyond version is using the Mostly Concurrent partial collection garbage collector with pause times usually around 5ms. Therefore, yes, the GC is influencing the other apps by stopping them but the concurrent GC algorithm is able to minimaze these pauses.

You should look at :

In general, the Garbage Collection theory [Garbage Collection Wiki] explains:

  • Stop-the-world garbage collectors completely halt execution of the program to run a collection cycle

  • Incremental and concurrent garbage collectors are designed to reduce this disruption by interleaving their work with activity from the main program. Incremental garbage collectors perform the garbage collection cycle in discrete phases, with program execution permitted between each phase (and sometimes during some phases).

  • Concurrent garbage collectors do not stop program execution at all, except perhaps briefly when the program's execution stack is scanned.

Solution 2:

Complete independence is rather impossible: garbage collector and program use the same memory and have to communicate somehow. Even "pauseless" GCs, like Azul's (btw, a good read: http://www.artima.com/lejava/articles/azul_pauseless_gc.html), have technical pauses. Dalvik is probably (pure guess, based on anecdotal evidence and resources likely poured into JVMs during the last 15 years by the likes of IBM, Sun and Oracle) years behind the newest technology found in JVMs, so I suspect that the pauses will be longer.

Solution 3:

It wouldn't pause other apps, it may pause your app. A mark and sweep doesn't have to stop all processing, its just the easiest way of doing it. It probably has some points where it pauses execution and other where it doesn't. THe only real way to tell would be to look at the Dalvik VM code. And I wouldn't count on it being the same answer in all versions of Android.

Post a Comment for "Is Android Garbage Collector Pausing Other Apps While Running?"