AndroidGameView + GC_MINOR
Tengo una aplicación bastante compleja basada en OpenGL que utiliza AndroidGameView
para configurar los contextos de dibujo, etc. Me di cuenta de que en algún momento en el pasado (no siempre fue así) que empecé a obtener constantes GC_MINOR
mensajes en la consola al probar el en un Nexus 7 cada segundo o dos.
También me di cuenta de que el proyecto de plantilla básica para "Android OpenGL Application" (en Xamarin Studio) también sufre de un problema similar. La creación de un nuevo proyecto a partir de esta plantilla y su ejecución en los resultados de hardware en los siguientes mensajes en la consola cuando la aplicación se acaba de sentar y ejecutar:
- Biblioteca de vinculación de datos de Android en Xamarin.Android
- Xamarin Forms Navegación de página MasterDetail causando un accidente en android , Funciona en iOS y UWP
- No se puede crear F # Android Project - Visual Studio 2015 Comunidad Xamarin
- API de Android IsConnected devolviendo TRUE tras finalizar sesión
- ¿Cómo uso SharedPreferences en Xamarin.Android?
[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
Mi pregunta es: ¿por qué está sucediendo esto? Estoy seguro de que tiene algo que ver con el AndroidGameView
subyacente, pero no siempre fue así. En mi aplicación actual, la constante GC'ing está teniendo un impacto negativo en el rendimiento gráfico general (parece "hipo" un poco como el GC_MINOR
pausas para 50-100ms).
- El botón Atrás no responde en UrhoSharp
- No se puede establecer la propiedad en un fragmento con varias instancias
- No se pudo iniciar la aplicación.
- Android + XAMARIN + Force para permanecer en modo "Retrato" (usando AndroidManifest)
- ¿Cuál es la señal fatal 6 en android logcat
- NullPointerException mientras muestra OptionsMenu
- Convertir Android.Graphics.Bitmap a la imagen
- "Java.exe" salió con código 1 Error al ejecutar la aplicación xamarin.android
Creo que Xamarin corrigió este comportamiento en 5.1
Echa un vistazo – https://developer.xamarin.com/releases/android/xamarin.android_5/xamarin.android_5.1/#GC-free-Method_Invocations
Anteriormente, asignaron algunos wappers de .NET a objetos Java cada llamada de Actualización / Draw. Para mi mente la tasa de asignación era de unos 5-10kb por segundo. Esto podría llevar a GC cada minuto o sobre eso.