2017-06-14 1 views
0

J'utilise XAMARIN pour développer une application Android.
Je souhaite redéfinir un bogue relatif à une fuite afin de libérer une référence globale.

J'essaie de créer de nombreuses références globales (plus de 52K) mais quand le nombre de références globales atteint ~ 46K, le GC essaie toujours de collecter plein et encore, donc je ne peux pas créer plus .
Quelqu'un sait comment créer plus?Comment créer plus de 46K Global Reference?

 
06-14 10:57:15.891 I/monodroid-gc(30078): 46196 outstanding GREFs. Performing a full GC! 
06-14 10:57:17.651 I/dalvikvm-heap(30078): Clamp target GC heap from 259.249MB to 256.000MB 
06-14 10:57:17.651 D/dalvikvm(30078): GC_EXPLICIT freed 14K, 2% free 256925K/261688K, paused 3ms+136ms, total 575ms 
06-14 10:57:21.331 D/Mono (30078): GC_TAR_BRIDGE bridges 46074 objects 74803 opaque 112565 colors 47058 colors-bridged 45516 colors-visible 45516 xref 28118 cache-hit 275 cache-semihit 0 cache-miss 1542 setup 10.29ms tarjan 138.36ms scc-setup 23.85ms gather-xref 7.67ms xref-setup 3.00ms cleanup 21.47ms 
06-14 10:57:21.331 D/Mono (30078): GC_BRIDGE: Complete, was running for 5078.26ms 
06-14 10:57:21.331 D/Mono (30078): GC_MAJOR_SWEEP: major size: 24096K in use: 20670K 
06-14 10:57:21.331 D/Mono (30078): GC_MAJOR: (user request) time 351.36ms, stw 354.13ms los size: 20636K in use: 3034K 
06-14 10:57:21.331 I/monodroid-gc(30078): 46197 outstanding GREFs. Performing a full GC! 

Répondre

0

Sa mauvaise pratique est de prendre trop de références globales. S'il vous plaît réutiliser la référence et utiliser la base de données utilisent également le constructeur et de bonnes méthodes de transmission de données en utilisant l'interface, la diffusion, etc

+0

Je sais, mais ce n'est pas mon code de produit, il est utilisé pour les tests –