【问题标题】:Meaning of Xamarin debug output of GCGC 的 Xamarin 调试输出的含义
【发布时间】:2018-09-20 07:35:17
【问题描述】:

在调试物理设备时,我正在运行用 C# Xamarin for Android(目标框架 android 8.1)编写的应用程序并获得类似这样的日志消息:

09-20 08:53:04.165 D/Mono    (25500): GC_BRIDGE: Complete, was running for 0.14ms
09-20 08:53:04.165 D/Mono    (25500): GC_MINOR: (Nursery full) time 2.53ms, stw 3.56ms promoted 40K major size: 13040K in use: 10738K los size: 40968K in use: 38154K
09-20 08:53:04.617 D/Mono    (25500): GC_BRIDGE waiting for bridge processing to finish
09-20 08:53:04.621 D/Mono    (25500): GC_TAR_BRIDGE bridges 0 objects 0 opaque 0 colors 0 colors-bridged 0 colors-visible 91 xref 1 cache-hit 0 cache-semihit 0 cache-miss 0 setup 0.10ms tarjan 0.12ms scc-setup 0.20ms gather-xref 0.01ms xref-setup 0.00ms cleanup 0.00ms

有人知道这方面的文档吗?

例如:GC_MINORtime 是什么意思? stw 是什么意思? size 是什么意思?等等

【问题讨论】:

    标签: c# android xamarin mono


    【解决方案1】:

    根据the mono documentation

    对象最初是使用快速凹凸指针技术在托儿所中分配的。当nursery 已满时,我们开始一个nursery 收集:这是通过一个复制GC 来执行的。

    • time 可能垃圾收集所花费的时间
    • stw 的意思是“停止世界”,这意味着程序停止执行垃圾回收的时间。
    • SGen 中有 3 个堆,即 Nursery、主堆和大型对象存储。 size 值表示这些堆的当前大小。
    • promoted 表示有多少 Nursery 已提升到主堆

    【讨论】:

    • 你在这里得到了很好的解释。发布我的只是为了添加其他几点,但你的非常好。
    【解决方案2】:

    CG 代表垃圾收集器。

    CG_MINOR 是 SGen 用于为新对象分配空间的堆之一,是 SGen 用于 Xamarin 的默认垃圾收集器。

    来自 Xamarin 文档:

    托儿所——这是分配新的小物件的地方。当。。。的时候 托儿所的空间不足,将发生轻微的垃圾收集。任何 活动对象将被移动到主堆。

    您可以获取有关 Xamarin 垃圾收集 herehere 的更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2014-03-27
      相关资源
      最近更新 更多