.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,一经查实,立即删除!

相关文章

js封装map

js封装map 在大三的时候,做电子商务网站的时候,前端页面打包过来的数据都是json格式,为了更好的体验,有的时候我们需要封装url,需要我点击回退的时候,url地址栏目不变,其实我们在Android或者java里面通常也…

NYOJ-45 棋盘覆盖

棋盘覆盖 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;3描述在一个2k2k&#xff08;1<k<100&#xff09;的棋盘中恰有一方格被覆盖&#xff0c;如图1&#xff08;k2时&#xff09;&#xff0c;现用一缺角的22方格&#xff08;图2为其中…

你绝对干过的15件傻事儿

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

Python logging模块详解

1.简单的将日志打印到屏幕 import logginglogging.debug(This is debug message) logging.info(This is info message) logging.warning(This is warning message)屏幕上打印: WARNING:root:This is warning message默认情况下&#xff0c;logging将日志打印到屏幕&#xff0c;…

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

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

如何通过 Linq 将集合拆成多个块?

咨询区 BlakeH&#xff1a;请问是否可以用 linq 按序生成带有多个固定 size 的块&#xff1f;我的理想情况下还可以对这些 块 进行操作。回答区 Sergey Berezovskiy&#xff1a;说实话&#xff0c;你不需要写任何代码&#xff0c;使用 MoreLINQ 中的批次方法即可&#xff0c;它…

解决WP7的32位图像渐变色色阶问题

做游戏时发现背景图色阶现象严重&#xff0c;想了想会不会是显卡色深问题&#xff0c;于是加了下面一段代码&#xff0c;结果解决这个问题。 graphics.PreferredBackBufferFormat Microsoft.Xna.Framework.Graphics.SurfaceFormat.Color; 调试时发现PreferredBackBufferFormat…

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

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

智能流控

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

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

Github怎么删除之前的项目

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

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

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

rabbitmq学习:

消息队列&#xff08;消息中间件&#xff09;常见的有三种&#xff1a;RabbitMQ、ActiveMQ、ZeroMQ 这里要说的是RabbitMQ。 需要明确的几个概念&#xff1a; Broker: 翻译为中文应该是“经纪人”、“中间人”吧&#xff0c;就是指RbbitMQ服务本身 vhost: 虚拟主机&#xff0c;…

磁盘与目录的容量(转)

磁盘与目录的容量 现在我们知道磁盘的整体数据是在 superblock 区块中&#xff0c;但是每个各别文件的容量则在 inode 当中记载的。 那在文字接口底下该如何叫出这几个数据呢&#xff1f;底下就让我们来谈一谈这两个命令&#xff1a; df&#xff1a;列出文件系统的整体磁盘使用…

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

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

UVA10972 - RevolC FaeLoN(双连通分量)

题目链接 题意&#xff1a; 给定一个无向图&#xff0c;问最少加入多少条边&#xff0c;使得这个图成为连通图 思路&#xff1a;首先注意题目给出的无向图可能是非连通的&#xff0c;即存在孤立点。处理孤立点之后。其它就能够当作连通块来处理。事实上跟POJ3352非常像&#xf…

php返回一个变量,PHP从另一个文件获取变量

有许多不同的方法可以做到这个&#xff0c;我会和你分享2。INCLUDE可以在事实上include()它使用第三文件&#xff0c;但我不建议作为会议是容易得多。但是&#xff0c;如果你想要一个配置类型文件&#xff0c;这也很有用。顶部的login.php的&#xff1a;include(global.php);新…

如何解决Android studio已分享到github的项目但是git->commit directory提交不上去

今天在android studio里面分享了一个项目到github,打算开发一个Android各种框架,控件,或者特效的对比应用和分析,然后对相关功能进行扩展,如果感兴趣的小伙伴想把Android里面相关框架,控件,特效什么进行对比应用和总结并扩展,那么请猛戳这里吧,https://github.com/chan…

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

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