在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在.NET我们对于性能指标监控,其实常见的有两个方法,一个是CLI工具 使用dotnet-counters
-- 摘自 dotnet-counters 命令 安装dotnet-counters CLI工具,可通过如下命令: dotnet tool install --global dotnet-counters 更新命令如下所示: dotnet tool update dotnet-counters --global 安装完工具之后,我们可以进行查看可监视的进程: dotnet-counters ps 12268 dotnet C:\Program Files\dotnet\dotnet.exe 16324 dotnet C:\Program Files\dotnet\dotnet.exe 获取到进程ID后,我们可以通过如下命令进行监视: dotnet-counters monitor -p 12268 监视特定的 dotnet-counters monitor -p 12268 System.Runtime MyEventSource 在默认的情况下,我们对于 dotnet-counters monitor -p 12268 System.Runtime[cpu-usage,gc-heap-size] 对于监视器我们可以设置刷新频率,可以通过 dotnet-counters monitor -p 12268 --refresh-interval 3 System.Runtime[cpu-usage,gc-heap-size] 代码中的EventCounters
创建EventListener 在下面我们进行重写 internal sealed class MyEventListener : EventListener { protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource.Name.Equals("Microsoft-Windows-DotNETRuntime")) { EnableEvents(eventSource, EventLevel.Verbose, (EventKeywords)(-1)); } } } 事件消费 接下来我们需要进行重写 protected override void OnEventWritten(EventWrittenEventArgs eventData) { Console.WriteLine($"ThreadID = {eventData.OSThreadId} ID = {eventData.EventId} Name = {eventData.EventName}"); for (int i = 0; i < eventData.Payload.Count; i++) { string payloadString = eventData.Payload[i]?.ToString() ?? string.Empty; Console.WriteLine($"\tName = \"{eventData.PayloadNames[i]}\" Value = \"{payloadString}\""); } Console.WriteLine("\n"); } 参考 https://stackoverflow.com/questions/61081063/get-total-number-of-allocations-in-c-sharp 到此这篇关于.NET必知的EventCounters性能指标监视器详解的文章就介绍到这了,更多相关.NET性能指标监视器内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论