成人免费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-11-03 10:18:46

VB.NET繼承

2010-01-20 13:42:10

VB.NET訪問INIGetPrivateP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91麻豆精品国产91久久久久久久久 | 久久网日本| 欧美日韩精品久久久免费观看 | 在线观看免费av网 | 一区二区三区免费 | 奇米影视在线 | 波多野结衣av中文字幕 | 91精品国产色综合久久 | 亚洲一区二区在线播放 | 午夜国产一级片 | 亚洲情综合五月天 | 日韩中文一区二区三区 | 91久久久精品国产一区二区蜜臀 | 97国产在线观看 | 中文区中文字幕免费看 | 亚洲综合在线一区二区 | 久久久久久久一区 | 欧美九九九 | 亚洲精品欧美精品 | 日韩在线观看视频一区 | 91一区二区三区 | 性高湖久久久久久久久 | 亚洲欧美国产精品一区二区 | 国产精品视频网站 | 精品成人免费一区二区在线播放 | 成人h动漫精品一区二区器材 | 国产精品一区二区三区四区 | 国产免费拔擦拔擦8x高清 | 日韩电影免费观看中文字幕 | 成年免费大片黄在线观看岛国 | 精品一级 | 在线观看h视频 | 欧美一级电影免费 | 欧美精品三区 | 亚洲视频一 | 中文字幕av在线 | 亚洲一区二区三区在线 | 欧美精品一区三区 | 天天夜夜操 | www.四虎.com | 一级免费a |