I am working on a game for Android and debugging it on my N1. At first, performance was patchy. Then I worked on cleaning all distributions to prevent garbage collection. This greatly improved the situation, but I still saw some garbage collections that caused very short pauses in the animation.
Pulling my hair for a while, I noticed that the process IDs that did the garbage collection (GC_FOR_MALLOC) were not my process ID. The process identifiers belonged to the Android system and android.process.acore (determined using the Android System Info application from the market). The acore process was tied to a desktop widget called a digital clock. I removed the widget and almost made it through the whole game without any pauses. There was one very short pause for the GC for the "Android system."
Sorry for the long explanation, but now for my questions:
- How does it happen that in other games sometimes there are no pauses due to the GC system process (something from a developer control)?
- According to the first question, how can I work with another application that calls GC, which slows down my process and causes hiccups in my game?
I just feel that something is missing me, as other games do not have this problem.
thank
source
share