如何创建超过46K的全球参考?

时间:2017-06-14 04:48:18

标签: android memory xamarin garbage-collection

我正在使用XAMARIN开发Android应用程序 我想重新处理一个关于泄漏的错误,以释放全局参考。
(使崩溃申请)
我尝试创建许多全局参考(超过52K),但当全局参考的数量达到~46K时,GC总是尝试一次又一次地完全收集,因此我无法创建更多。
任何人都知道如何创造更多?

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!

1 个答案:

答案 0 :(得分:0)

采取太多全球参考的不良做法。请重用参考和使用数据库也使用构造函数和使用接口,广播等的良好数据传递方法