.NET必知的EventCounters性能指标监视器详解_实用技巧

来源:脚本之家  责任编辑:小易  

调用 button.PerformClick() 即可www.zgxue.com防采集请勿采集本网。

在.NET我们对于性能指标监控,其实常见的有两个方法,一个是CLI工具dotnet-counters而另一个是代码级别的EventListener.

删除金山网镖

使用dotnet-counters

123456Public Sub Delay(Second As Bouble)    Dim tempTime As DateTime = DateTime.N

dotnet-counters是一个性能指标监视工具,用于临时运行状态监视和初级性能调查。它可以观察通过 EventCounter API发布的性能计数器值。例如,可以快速监视 CPU 使用情况或 .NET Core 应用程序中引发的异常率,以了解在使用 PerfViewdotnet-trace 深入调查更严重的性能问题之前是否有任何可疑操作。

右键单击桌面右下角 "金山网镖" 再弹出的菜单中有一项 开机时启动金山网镖 把前面的"√"取消 然后 还是右键键单击 桌面右下角 "金山网镖&quo

-- 摘自 dotnet-counters

那要看你用在什么地方了,给程序来看看才能分析啊

命令

dotnet-counters collect

RaiseEvent只能在类的定义中用 不能通过实例引用 也就是说Event是由类的开发者封装好的,不允许使用者自己在代码中来引发事件,用户只能编写处理事件的代码(也就是你程序

dotnet-counters list

最简单的方法,在你的aspx中: <form id="form1" runat="server" defaultbutton="btnSearch"> defaultbutton中写上你首页的按钮ID

dotnet-counters monitor

raiseevent 在合适的地方或时机触发事件,以执行已与该事件绑定的所有函数。 事件一旦被触发,将执行所有与该事件有关的函数,同一个事件执行的函数代码可以完全不同,开发

dotnet-counters ps

在代码的开头: 用WithEvents声明类,比如 Private WithEvents 变量名 As New 类名 用Handles邦定事件,比如Private Sub 过程名() Handles 变量.事件名 最后引发事件就相当

安装dotnet-counters CLI工具,可通过如下命令:

如果你一定要这么干的话,在变量或者常量名前加@就行了,比如 public const int @event = 10;

dotnet tool install --global dotnet-counters

已经发给你了

更新命令如下所示:

游戏目录\bin32\目录下

dotnet tool update dotnet-counters --global

解决方法很简单的,你下一个fmod_event_net.dll拷至游戏根目录\\bin32下 就可以了

安装完工具之后,我们可以进行查看可监视的进程:

您可以参照下列提示操作下,希望我的回答对您有所帮助!~ 【原因分析】:文件丢失 【简易步骤】: 添加缺失文件,然后点击【开始】—【运行】—输入【regsvr32 丢失的DL

dotnet-counters ps 12268 dotnet C:\Program Files\dotnet\dotnet.exe 16324 dotnet C:\Program Files\dotnet\dotnet.exe

1个最笨最简单的办法,,重新下载安装游戏

获取到进程ID后,我们可以通过如下命令进行监视:

dotnet-counters monitor -p 12268

监视特定的EventSources,可以提供以一个空格分隔开的EventSources列表,如下所示:

dotnet-counters monitor -p 12268 System.Runtime MyEventSource

在默认的情况下,我们对于EventSource监视时,它捕获的是所有的计数器。如果我们想单独跟踪某几个计数器那么可通过如下方式进行指定:

dotnet-counters monitor -p 12268 System.Runtime[cpu-usage,gc-heap-size]

对于监视器我们可以设置刷新频率,可以通过--refresh-interval参数来设置:

dotnet-counters monitor -p 12268 --refresh-interval 3 System.Runtime[cpu-usage,gc-heap-size]

代码中的EventCounters

EventListener提供了进程内(In-Process)订阅和消费日志事件的方式,EventListener可以接收到来自EventSource分发的日志事件。 这些事件内涵盖了GC、JIT、ThreadPool和interop的行为。

创建EventListener

在下面我们进行重写OnEventSourceCreated方法,该方法会在调用时接收一个EventSource对象,我们可以通过EventSource对象的Name属性去筛选我们感兴趣的日志事件,筛选后我们需要显示的调用EnableEvents方法向感兴趣的日志事件发起订阅。

internal sealed class MyEventListener : EventListener { protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource.Name.Equals("Microsoft-Windows-DotNETRuntime")) { EnableEvents(eventSource, EventLevel.Verbose, (EventKeywords)(-1)); } } }

事件消费

接下来我们需要进行重写OnEventWritten,关于日志事件相关的信息会被封装成一个EventWrittenEventArgs对象,我们不仅可以通过它获取当前日志事件的所有信息,而且我们还可以进行获取到EventSource对象。Payload包含了不同属性的值ReadOnlyCollection<object>, 而PayLoadNames ReadOnlyCollection<object>中包含了不同的属性名称,我们现在可以通过如下方式进行获取这些属性:

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性能指标监视器内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

一些鼠标没有滚轮有3个按键,对于这种鼠标,按下中间的按键,然后移动,来实现滚动,触发的消息和带有滚轮的鼠标直接滚动是一样的。 所以两种说法其实都是对的内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • vs2015正式版安装教程
  • 自定义 datalist 显示数据行数的方法
  • asp.net/c#中如何调用动态链接库dll
  • 详解asp.net数据绑定操作中repeater控件的用法
  • asp.net输出重写压缩页面文件实例代码
  • 使checkboxlist的attributes属性生效(修改微软的一个bug)
  • .net core 下使用zkweb.system.drawing实现验证码功能(图形验证码
  • 简析asp.net网站的创建与发布过程
  • asp.net动态添加控件一例
  • 解析如何利用一个asp.net core应用来发布静态文件
  • 请问下vb.net中有关mouse_event的问题?
  • vb。net raiseEvent的用法。。
  • the net final price, in the event of award , is...是什么意思,与合同...
  • 每次系统关机的时候都会提示NET broadcastevent windows 1.0...
  • 怎样关闭金山毒霸Net-Broadcast Event Windows?
  • vb.net DOEVENT怎么用
  • xp系统更换用户账号后出现net-broadcast event 关不了机是什么...
  • vb.net 的用application.doevent后程序没反应
  • vb.net event 与 sub 是什么作用啊?
  • .net event keycode问题 谢谢!!!
  • 请教下vb.net 什么时候用事件,raiseevent和直接调用函数有多大...
  • vb.net引发事件的问题,RaiseEvent
  • c# .net 如果使用c# 的关键字 比如event 当常量可否,怎么使用?
  • 坦克世界丢失了一个文件(fmod_event_net.dll),跪求发过来,邮箱...
  • 孤岛危机2 fmod_event_net.dll放在哪个位置
  • 孤岛危机2缺少fmod_event_net.dll,下载并放好了,win+R输入reg...
  • 找不到Fmod_event_net.dll。网上下载的和windows版本不兼容
  • 坦克世界游戏丢失fmod_event_net__dll怎样重新安装利用程序
  • 英雄联盟缺少 fmod_event_net.dll
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础应用实用技巧自学过程首页asp.net实用技巧vs2015正式版安装教程自定义 datalist 显示数据行数的方法asp.net/c#中如何调用动态链接库dll详解asp.net数据绑定操作中repeater控件的用法asp.net输出重写压缩页面文件实例代码使checkboxlist的attributes属性生效(修改微软的一个bug).net core 下使用zkweb.system.drawing实现验证码功能(图形验证码简析asp.net网站的创建与发布过程asp.net动态添加控件一例解析如何利用一个asp.net core应用来发布静态文件未将对象引用设置到对象的实例 (java正则表达式 pattern和matcheasp.net(c#)网页跳转七种方法小结未能加载文件或程序集“xxx”或它asp.net“服务器应用程序不可用”asp.net中的几种弹出框提示基本实asp.net gridview 72般绝技asp.net生成excel并导出下载五种asp.net对路径"xxxxx"asp.net汉字转拼音和获取汉字首字详解asp.net mvc 利用razor引擎生成静态页.net core webapi jwt 更为清爽的认证详解浅谈.net反射机制的性能优化 附实例下载c# rabbitmq 简单收发消息的示例代码c# setcursorpos简介及使用说明asp.net实现xml文件读取数据绑定到dropdovisual studio 2017安装心得总结mvc、mvp和mvvm分别是什么_动力节点java学完美解决could not load file or assembl.net微信公众号开发之查询自定义菜单
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved