成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET代碼性能監控實現原理

企業動態
.NET框架是一個多語言組件開發和執行環境,它提供了一個跨語言的統一編程環境,多語言包括:C#、VB、C++(CLI)、J#等。

一、. NET平臺及現狀

1、.NET

.NET框架是一個多語言組件開發和執行環境,它提供了一個跨語言的統一編程環境,多語言包括:C#、VB、C++(CLI)、J#等。

.NET為創建HTML頁面提供了一種編程模型,稱為ASP.NET,在ASP.NET的編程模型里也有多種編程模型:如MVC、WebAPI、WebForm等。

[[158847]]

.Net架構模型圖

這張圖基本描述了.NET的平臺架構。

2、平臺及開源(不得不說的痛)

基于.NET 2015之前版本編寫的應用程序只能運行在Windows 平臺上,如果想移值到Linux上則只能依賴開源框架(Mono)且需要重新編譯。

而按照微軟在2015年Build大會上發布的.NET開發路線圖,在5.0 及之后版本基于.NET Core 編寫的應用程序將可以直接實現跨平臺部署和運行,不再需要重新編譯。

5.0的正式版本會在2016春季正式發布,目前已經發布到Beta 7(2015年9月2日發布),這個版本的重要意義在于它第一次實現了.NET程序不依賴于Mono即可在Mac和Linux上運行。

微軟已將.NET平臺下除Form之外的Core開源(在JAVA開源8年后,微軟終于邁出了艱難的一步,但要走的路還很長)

[[158848]]

上圖是微軟對.NET平臺的全新構建。

3、基本概念

CLR(Common Language Runtime,通用語言運行時)

和Java虛擬機一樣它是.NET應用程序的運行時環境,它負責程序的資源管理(內存分配和垃圾收集等等),并保證應用和底層操作系統之間必要的分離。

MSIL(Microsoft Intermediate Language,微軟中間語言)

IL是微軟.NET平臺上衍生出來的一門中間語言,.NET平臺上各種高級語言(如C#,VB,F#)的編譯器會將各自的文字表述方式轉化為IL。各種不同的文字形式最終被統一到了IL的表述方式,包含了.NET平臺上的各種元素,如“范型”,“類”、、“接口”、“模塊”、“屬性”等等。

JIT(Just In Time,即時編譯)

使用高級語言編寫的應用被編譯為IL后,JIT編譯器會將IL編譯為本地指令并執行,從而最大限度的實現了平臺無關性。

.NET平臺框架具備天然的跨平臺優勢,但微軟卻把它打造成了windows平臺獨享的版本,還好的是他現在邁出了開源和跨平臺的第一步。

二、透視寶之.NET應用性能監控實現及原理

1、基本原理

.NET 應用程序編譯后會被編譯為IL,它們通常會被打包為后綴名為“.dll”的文件,即動態鏈接庫,這些文件里包含了應用程序元數據、IL及程序鏈接信息等,JIT負責編譯這些DLL中的IL語言,將它們轉換成機器可執行的機器碼。

在JIT第一次編譯IL之前,我們的 .NET Agent 會攔截并改寫這些IL并注入探針,攔截方法執行,抓去程序運行堆棧,收集應用程序上下文數據(包括SQL等任何想要的數據)。

2、.NET Profiling Agent 的實現

透視寶 .NET Agent 由兩部分組成:

(1)、探針注入核心組件

它是一個使用 C++ 語言編寫的組件。理論上可以附加到任何想要攔截的.NET應用運行時環境里(包括ASP.NET、.NET桌面應用程序及Service、甚至 Windows Phone 的移動應用里),它負責IL改寫且只會在任何方法被JIT前執行一次,一旦執行完成,將不會再執行。

探針注入核心組件要求高效、穩定、安全,因為任何對IL的改寫出錯和操作失誤,都會導致整個應用程序崩潰。

(2)、探針

探針是一組方法,主要完成上下文數據收集,包括堆棧、SQL、API等透視寶關注的數據。

[[158849]]

這是.NET Profiling Agent 實現的原理圖,圖中綠色的部分即為.NET Profiling Agent存在的兩個層面。

(3)、舉例(我們依然從不變的Hello world! 程序開始)

源程序:

[[158850]]

編譯后:

[[158851]]

Instrumented IL:

[[158852]]

三、安裝及部署

透視寶.NET Profiling Agent 遵循Smart Agent組件的標準開發規范,配置和安裝也非常簡單,只需要執行一個.bat文件即可,且不受應用及機器重啟的影響,只要安裝后它便會一直存在。

[[158853]]

這是.NET Agent的安裝生命周期流程圖,圖中深藍色的部分是需要手動干預的部分,其它都自動完成。

以上是云智慧透視寶.NET代碼監控的實現原理和部署方法,除此之外透視寶還支持PHP、Java、Python等主流Web語言的監控,在單次請求追蹤中提供針對代碼執行情況的詳細追蹤,包括:查看執行最慢的10個元素,包括元素執行次數、持續時長和占用時長百分比;查看HTTP請求參數,包括請求的響應狀態、鏈接頁面、具體的請求參數及返回結果;查看代碼執行堆棧的詳細樹狀信息,包括每個方法的計算時間、總耗時和被調用的次數,您能直接看到特殊標識的最慢方法;查看涉及SQL語句的總耗時排序,包括SQL執行總耗時、執行次數和具體的查詢語句等。

目前透視寶APM的標準版功能永久免費,企業版提供30天免費試用,有需要的開發者和運維同學可以訪問透視寶官網:http://toushibao.com/ ,申請注冊。

責任編輯:李英杰 來源: 51cto.com
相關推薦

2015-12-11 11:49:19

java

2015-10-12 17:08:14

云智慧

2015-12-11 14:02:02

php應用

2015-11-17 18:06:22

云智慧PHP應用性能

2025-03-06 02:00:00

.NETGrafana工具

2009-11-04 13:51:46

ADO.NET性能

2015-09-15 15:41:09

監控寶Docker

2025-02-25 12:00:00

Java線程開發

2021-02-02 13:45:31

Vue代碼前端

2024-07-31 08:31:13

2025-02-04 10:58:16

2024-09-04 08:09:51

2010-08-02 15:21:06

DelphiICMP

2024-08-19 02:35:00

模型量化深度學習

2009-08-10 17:17:10

ASP.NET安裝部署

2010-01-08 15:41:36

VB.NET窗口關閉

2025-04-11 03:00:55

2024-09-13 16:47:06

模型量化AI

2009-09-18 13:05:59

.NET CLR

2009-11-03 10:18:46

VB.NET繼承
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品乱码久久久久久黑人 | 日韩一二区| 久久亚洲一区二区三区四区 | 国产成人免费在线 | 精品国产免费一区二区三区五区 | 岛国毛片在线观看 | 免费观看www | 九九亚洲 | 国产成人99久久亚洲综合精品 | 精品美女视频在线观看免费软件 | 国产精品99久久久久久www | av在线电影网站 | 91激情视频 | 欧美亚洲视频在线观看 | 亚洲视频 欧美视频 | 一区二区在线 | 国产一区视频在线 | www.日韩 | 天天干天天干 | 精品国产乱码久久久久久牛牛 | 综合二区| 欧美一区二区 | 18成人在线观看 | 欧美无乱码久久久免费午夜一区 | 午夜精品一区二区三区在线视频 | 欧美一级毛片免费观看 | 精品欧美一区二区三区久久久 | 玖玖精品| 精品伊人久久 | 91精品国产一二三 | 国产一区久久精品 | 亚洲综合天堂 | 国产丝袜人妖cd露出 | 成人午夜激情 | 国产综合精品一区二区三区 | 亚洲日韩中文字幕一区 | 国产一区二区三区色淫影院 | 天堂男人av | 国产精品日韩一区二区 | 久久久久久久久久久久久91 | 国产精品亚洲二区 |