更進一層的.Net事件跟蹤機制

jopen 12年前發布 | 6K 次閱讀 .NET

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

.NET 4.5 新增了 EventSourceEventListener 兩個類,為那些使用 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 發布的一些相關視頻

來自: InfoQ

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!