GC 的 Xamarin 调试输出的含义

kov*_*oli 1 c# mono android xamarin

我正在运行用 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
Run Code Online (Sandbox Code Playgroud)

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

例如:GC_MINOR:什么time意思?什么stw意思?什么size意思?等等。

ikk*_*tim 5

根据单声道文档

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

  • time大概的时间来收集垃圾了
  • stw 意味着“停止世界”,这意味着程序停止执行垃圾收集的时间。
  • SGen 中有 3 个堆,即托儿所、主堆和大对象存储。这些size值指示这些堆的当前大小。
  • promoted 表示有多少托儿所被提升到主堆