大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

更进一层的.Net 事件跟踪机制

  • 2012-07-18
  • 本文字数:698 字

    阅读完需:约 2 分钟

.NET 4.5 新增了 EventSource EventListener 两个类,为那些使用 Windows 事件跟踪 (Event Tracing for Windows, ETW) 工具来记录事件的应用程序提供了一个更加简单的编程机制。若与 PerfView 这样的分析工具结合在一起,便能更好地发挥.NET 应用程序中的跟踪功能。

.NET 4.5 引入的 EventSource 类是一个可供开发人员继承和扩展他们自己的事件源的基类。开发人员可以给他们想要记录的每个不同事件类型添加新的方法——这些方法会在适当的位置被应用程序调用。从代码级别来分析,这些方法都会调用 WriteEvent() 这一方法,它会依次发送事件给设定好的 EventListener ,其中包括会发送日志信息给 ETW 的内置侦听器。 Vance Morrison 对此做了详细介绍

Vance 发布的一份参考指南" Strongly Typed Events (EasyETW) "中提到:

ETW 是 Windows 下一个高效的事件系统,它不仅在 Windows 核心层,而且在许多 Windows 子系统中都得到了广泛运用。内置 ETW 源提供了丰富的‘底层’信息(如指示 CPU、磁盘以及网络活动在哪儿发生等),而 EventSource 就基于这些构建而成,它允许程序员来标注“高级”语义行为,进而再为高级任务分配资源。

当然,你还能自定义 EventListeners 做更多工作,而不仅仅是给 ETW 发送信息——例如,开发 silverlight 程序时,你可以通过网络向主机发送跟踪数据。

PerfView 则是微软提供的一个性能分析工具。它被部署为一个单独的执行文件,能够支持监测任何程序的 CPU 和内存使用情况,同时还具备一些非常有用的功能,特别是在分析托管代码方面。如果你想了解更多关于如何使用这个工具的内容,请参考 Vance 发布的一些相关视频

查看英文原文: Better Tracing And Instrumentation For .NET Apps

2012-07-18 23:342839
用户头像

发布了 114 篇内容, 共 38.7 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Android模块化开发实践

vivo互联网技术

android 架构 开发 项目实战 模块

protocol buffer的高效编码方式

程序那些事

Java protobuf 程序那些事

web技术分析| 一篇前端图像处理秘籍

anyRTC开发者

大前端 音视频 WebRTC web技术分享

带你梳理Jetty自定义ProxyServlet实现反向代理服务

华为云开发者联盟

容器 k8s jetty Servlet引擎 ProxyServlet

Golang:再谈生产者消费者模型

Regan Yue

协程 Go 语言 8月日更

传统到敏捷的转型中,谁更适合做Scrum Master?

华为云开发者联盟

Scrum 敏捷 团队 项目经理 Scrum Master

面试重灾区:请说说mybatis的一级缓存和二级缓存

小鲍侃java

8月日更

后Kubernetes时代的虚拟机管理技术之kubevirt篇

谐云

虚拟机 #Kubernetes#

MySQL大版本间的区别

4ye

MySQL 后端 innodb 版本 8月日更

最小二乘法,了解一下?

华为云开发者联盟

数据 数据处理 计算 最小二乘法 数学工具

带头撸抽奖系统,DDD + RPC 开发分布式架构!

小傅哥

DDD 小傅哥 架构设计 springboot 抽奖系统

智能运维系列直播间开讲啦,就在今天!

使用mock.js给前端生成需要的数据

与风逐梦

大前端 后端 开发工具

来了!《中国移动2021智能硬件质量报告》正式发布

Vue进阶(六十三):如何使浏览器打开时,默认的文档模式就是标准模式

No Silver Bullet

Vue 8月日更

Go- 函数参数和返回值

HelloBug

函数 参数 返回值 Go 语言

国产接口调试工具ApiPost中的内置变量

Proud lion

大前端 测试 后端 Postman 开发工具

KubeCube开源:魔方六面,降阶Kubernetes落地应用

网易数帆

开源 Kubernetes 容器 KubeCube

6种常用Bean拷贝工具一览

码农参上

8月日更 对象拷贝

打造数字人民币的大运应用场景

CECBC

区块链+物联网设备,能产生什么反应?

CECBC

一分钟学会使用ApiPost中的全局参数和目录参数

CodeNongXiaoW

大前端 测试 后端 接口工具

iOS开发:Mac电脑Xcode里面添加导入真机调试包的步骤

三掌柜

8月日更 8月

PageHelper原理深度剖析(集成+源码)

阿Q说代码

ThreadLocal 分页 PageHelper 8月日更 mybatis的拦截器

从lowcode看下一代前端应用框架

百度Geek说

大前端 lowcode

多样数字人民币钱包来袭,阻力与动力并存

CECBC

手撸二叉树之二叉树的坡度

HelloWorld杰少

8月日更

NameServer 核心原理解析

leonsh

RocketMQ 消息队列 NameServer

云小课 | 详解华为云独享型负载均衡如何计费

华为云开发者联盟

负载均衡 华为云 弹性负载均衡 独享型ELB实例 独享型负载均衡

以区块链为基础 通证经济是下一代互联网的数字经济

CECBC

Java NIO在接口自动化中应用

FunTester

Java nio 接口测试 测试开发

更进一层的.Net事件跟踪机制_.NET_Roopesh Shenoy_InfoQ精选文章