c# - GC 的 Xamarin 调试输出的含义
问题描述
在调试物理设备时,我运行用 C# Xamarin for Android(Target framework 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_MINOR:什么time
意思?什么stw
意思?什么size
意思?等等
解决方案
根据单声道文件
最初使用快速凹凸指针技术在托儿所中分配对象。当nursery 已满时,我们开始一个nursery 收集:这是通过复制GC 执行的。
time
可能是垃圾收集的时间stw
意思是“停止世界”,这意味着程序停止执行垃圾收集的时间。- SGen中有3个堆,nursery、major heap和大对象存储。这些
size
值表示这些堆的当前大小。 promoted
表示有多少 Nursery 被提升到了主堆
推荐阅读
- mod-perl2 - 使用 ModPerl::Registry 运行的 CGI 脚本不会在 html 页面上打印结果,只需下载即可
- angular - 如何将用户输入字段行添加到 Mat Table 数据源
- javascript - 使用 JQuery 替换开始和结束标记
- python - 如何子类化 Python 中的内置函数类?
- php - Laravel 路由获取错误的参数值
- terraform - terraform google cloud nat 使用保留的静态 ip
- sql - 将 SQL 查询的结果输出到文本框中
- c# - 如何在 UWP 中的事件中更改文本块的背景
- circleci - 无效的步骤结构
- mongodb - 估计 MongoDB Atlas 数据湖中的查询影响