.NET GC 实时监控工具 dotnet gcmon 介绍

7a40e443ea89a54f662a42344819b16a.png

今天介绍一个新的诊断工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以监控到 .NET 程序的 GC, 能获取到的信息也很详细, 另外 maoni 大佬也是其中的开发者之一。

安装 gcmon

和其他的 dotnet 诊断工具一样, 你可以使用以下命令,进行全局安装

dotnet tool install -g dotnet-gcmon

参数介绍

参数描述
n进程名, dotnet 应用的进程名
p进程ID, dotnet 应用的 Process ID
m最小 GC 暂停持续时间(以毫秒为单位),可选
c指定一个 yaml 配置文件路径, 可选

使用

使用非常简单, 我们需要指定被监控的 dotnet 应用的进程名或者是进程ID (PID), 这里也可以使用另外一个诊断工具 dotnet-trace, 安装命令如下

dotnet tool install -g dotnet-trace

然后运行 dotnet trace ps 获取所有的 dotnet 进程

e0fd77cca3aa1e8162d99d4c45b6e79a.png

接下来, 运行 dotnet gcmon -p 21904, 开始监控 dotnet 应用, 诊断工具会输出下面的信息

1e976d5220e9e7f73988b694045c372e.png

在诊断工具运行的时候, 按下 s 键, 会输出当前 GC 的整体和每一代的状态

c47a52687496717e2cf2052f95a599f7.png

另外还可以使用 yaml 配置文件, 灵活配置诊断工具输出列,具体可以参考 github。

总结

dotnet gcmon 是一个小而实用的诊断工具, 并且还在迭代中, 在对于代码无侵入的情况下, 排查问题还是很方便的, 另外 .NET 现在已经有近十个诊断工具了!

gcmon 的工作原理是什么呢? 其实主要是调用了 CLR 运行时团队提供的一个诊断库, Microsoft.Diagnostics.NETCore.Client, 这个库功能就非常强大了, 各种运行时信息都可以拿到, 当然你也可以用它实现一个诊断工具, 这个库是基于 EventPipe, IPC 等实现的, 还是很复杂的, 最后希望本文对您有用!

https://github.com/Maoni0/realmon

7d937dc6808a804202d6cfe38a84fb92.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你绝对干过的15件傻事儿

全世界只有3.14 % 的人关注了爆炸吧知识首先来看你绝对干过的15件傻事儿,别不承认!把树叶弄成这样喝酸奶舔盖子吃完棒冰继续含着棍子咬拉链尝试用笔写一首歌比如《生日快乐》对着电风扇说话或喊叫刮墙壁上的油漆过斑马线只踩白色部分猫打哈欠时伸手指进去…

java什么时候可能产生内存溢出_哪些场景会产生OOM?怎么解决?

Java技术栈www.javastack.cn关注阅读更多优质文章这个面试题是一个朋友在面试的时候碰到的,什么时候会抛出OutOfMemery异常呢?初看好像挺简单的,其实深究起来考察的是对整个JVM的了解,而且这个问题从网上可以翻到一些乱七八糟的答…

年仅53岁,因连续工作、过度劳累,这位抗疫幕后的科研专家去世

全世界只有3.14 % 的人关注了爆炸吧知识本文来源:募格学术综合整理新华社、科技日报 记者 张佳星、长江日报-长江网据新华社报道,在抗击新冠肺炎疫情期间,因连续工作、过度劳累,中国医学科学院病原生物学研究所研究员赵振东教授因…

智能流控

关键应用太慢,带宽用不好?AppEx 智能流控帮你轻松搞定! 现代企业和机构的运转越来越依赖网络的畅通。而网络应用的日益繁杂经常让有限的带宽难以招架。企业和机构经常面临的一个问题是员工上网流量导致网络出口拥塞,从而严重影响企…

vim相关

2019独角兽企业重金招聘Python工程师标准>>> 跟我一起学Vim http://feihu.me/blog/2014/intro-to-vim/ 浅显易懂 #Vim学习笔记 http://mturing.com/wiki/wikihtml/Vim%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0.html Vim基本操作,排版不错 #简明Vim练级攻略 http://cool…

php生成vcf,详解PHP如何实现生成vcf vcard文件

PHP如何实现生成vcf vcard文件?本文主要介绍了PHP实现生成vcf vcard文件功能类定义与使用方法,结合具体实例形式分析了vcf vcard功能类的具体定义与使用方法,并附带VCardIFL.class.php类文件源码供读者下载参考。需要的朋友可以参考下&#x…

Github怎么删除之前的项目

Github怎么删除之前的项目 对于github的好奇,在上面新建了一个项目,如下图 我想把上面的项目删掉,但是发现找了很久没有找到删除的地方,我勒个插,后来终于找到地方了,首先,我们点击进去这个项目,然后看到settings如图, 点击进…

HTTP1.1 Keep-Alive到底算不算长连接?

✎ 码甲说 在基础架构部浸润了半年,有一些认知刷新想和童靴们交代一下, 不一定全面,仅代表此时的认知, 也欢迎筒靴们提出看法。本文聊一聊口嗨用语:“长连接、短连接”, 文章会按照下面的思维导图来讲述&…

酸了!第一名+第三名的学霸情侣,分别直博清华、人大…

全世界只有3.14 % 的人关注了爆炸吧知识本文授权转载自公众号:学术志(ID:xueshuzhi001)作者:青小小(ID:zqwqxx)综合自武汉大学在武汉大学数学与统计学院2017级数学基地班第一名和第三…

分析cocos2d-x中的CrystalCraze示例游戏

cocos2d-x自带了不少示例,以及几个比较简单的游戏,不过这些游戏都是用javascript binding(SpiderMonkey)做的,所以我猜测javascript binding可能是cocos2d-x开发游戏的主流模式,优点是: 游戏逻辑用javascript&#xff…

WPF 实现一个酷酷的Loading

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织由于微信群人数太多入群请添加小编微信号(yanjinhuawechat)或(W_Feng_aiQ)邀请入群(需备注WPF开发者)PS:有更好的…

DNS区域委派与转发

DNS区域委派与转发 DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间…

惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....

全世界只有3.14 % 的人关注了爆炸吧知识生活处处有科学《哆啦A梦》里的空气炮,是很多人童年时梦寐以求的神奇道具。只要将手伸进炮筒,就能发出强大的压缩空气炮,瞬间击倒体型庞大的怪物。为了证明“空气炮”的确有科学依据,有这么…

Android之如何解决Android Studio左边的的project不见了

今早上一打开Android studio,尼玛,我的project跑哪里去了,郁闷了,如下图 本来是要去问我师傅的,但是一想这么简单的问题也去问,弱爆了,如果在网上找不到解决问题的办法再去问吧,果然找到了&…

Win11推送加速!

微软宣布 Windows 11 现已开始向更多符合条件的 Windows 10 电脑推送。微软表示:无论是推广经验还是用户反馈,都是积极的。因此我们计划扩大 Windows 11 的推送范围,这比我们之前预期的要快。如果您有符合升级条件的 Windows 10 电脑&#xf…

h5通过php微信支付宝支付,用H5调用支付微信公众号支付的解析

这篇文章主要为大家详细介绍了微信公众号支付H5调用支付,具有一定的参考价值,感兴趣的小伙伴们可以参考一下最近项目需要微信支付,然后看了下微信公众号支付,虽然不难,但是细节还是需要注意的,用了大半天时间写了个dem…

这场戏里,到底是谁脏了?

1 让我表演个背包袱!▼2 猝不及防的劈叉(素材来源网络,侵删)▼3 就很出戏(素材来源网络,侵删)▼4 意识流拔河很有感觉了▼5 纯爱(素材来源网络,侵删)▼6 …

Android之如何解决刚下载的Android studio(包括上面的菜单栏)乱码问题

这个问题是我的台式机第一次下载Andorid studio的时候出现的,这台台式机组装的,是之前玩ps的人用了的,感觉怪怪的,第一次安装Android studio不是很熟悉,出现了乱码,包括菜单栏目,只有部分图片了,没有全部图片了 解决这个问题的总共思路: 思路一: 请教了那…

关于高级导数的一个不等式估计

from: http://math.fudan.edu.cn/gdsx/XXYD.HTM

体验.NET Core使用IKVM对接Java

【导读】与第三方对接最麻烦的是语言不同,因语言不同内置实现相关标准加密算法还是略微有所差异对接单点登录场景再寻常不过,由于时间紧迫且对接方使用Java,所以留给我对接开发和联调的时间本就不多,于是乎,在熬夜发版…