I have a rather complicated OpenGL-based application that uses AndroidGameViewto set up drawing contexts, etc. I noticed that at some point in the past (this was not always the case), I began to receive a GC_MINORmessage constant in the console when testing an application on Nexus 7 every second or two.
I also noticed that the main project of the Android OpenGL Application Android template (in Xamarin Studio) also suffers from a similar problem. Creating a completely new project from this template and launching it at the hardware level leads to the following messages on the console when the application just sits and works:
[Mono] GC_BRIDGE num-objects 8 num_hash_entries 8 sccs size 8 init 0.00ms df1 0.12ms sort 0.00ms dfs2 0.24ms setup-cb 0.03ms free-data 0.03ms user-cb 26.49ms clenanup 0.12ms links 0/0/0/0 dfs passes 16/8
[Mono] GC_MINOR: (Nursery full) pause 51.85ms, total 52.00ms, bridge 26.98ms promoted 848K major 1120K los 186K
[Mono] GC_MINOR: (Nursery full) pause 49.65ms, total 49.80ms, bridge 0.00ms promoted 544K major 1664K los 186K
[Mono] GC_MINOR: (Nursery full) pause 50.72ms, total 50.93ms, bridge 0.00ms promoted 544K major 2208K los 186K
[Mono] GC_MINOR: (Nursery full) pause 84.78ms, total 85.02ms, bridge 0.00ms promoted 560K major 2768K los 186K
[Mono] GC_MINOR: (Nursery full) pause 58.10ms, total 58.23ms, bridge 0.03ms promoted 560K major 3328K los 186K
[Mono] GC_MINOR: (Nursery full) pause 49.32ms, total 49.47ms, bridge 0.00ms promoted 544K major 3872K los 186K
[Mono] GC_BRIDGE waiting for bridge processing to finish
[Mono] GC_BRIDGE num-objects 1 num_hash_entries 1 sccs size 1 init 0.00ms df1 0.24ms sort 0.03ms dfs2 0.00ms setup-cb 0.00ms free-data 0.03ms user-cb 25.57ms clenanup 0.12ms links 0/0/0/0 dfs passes 18/9
[Mono] GC_MINOR: (Nursery full) pause 135.53ms, total 135.77ms, bridge 25.82ms promoted 560K major 4432K los 186K
My question is: why is this happening? I am sure that this has something to do with the base AndroidGameView, but this is not always the case. In my real application, the constant GC'ing has a negative impact on the overall graphics performance (it seems that the "hiccups" are quite a bit, since it GC_MINORstops for 50-100 ms).
source
share