日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用CoreProfiler/NanoProfiler实现跨平台amp;应用的整合性能调试

發(fā)布時(shí)間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用CoreProfiler/NanoProfiler实现跨平台amp;应用的整合性能调试 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

NanoProfiler是一個(gè)開(kāi)源.NET性能調(diào)試類庫(kù),CoreProfiler是其.NET Core版本的實(shí)現(xiàn)。在之前的一些文章中,我曾介紹過(guò)NanoProfiler的主要使用方式,以及如何為生產(chǎn)環(huán)境,基于ELK對(duì)應(yīng)用性能進(jìn)行調(diào)試和監(jiān)控。不過(guò),對(duì)于一般的用戶來(lái)說(shuō),尤其是本機(jī)開(kāi)發(fā)和小團(tuán)隊(duì)開(kāi)發(fā),搭建ELK,維護(hù)這套這套支持系統(tǒng)的穩(wěn)定運(yùn)行,學(xué)習(xí)曲線還是有點(diǎn)高。而如果只是單個(gè)app孤立的使用NanoProfiler,則大大浪費(fèi)了其原本能發(fā)揮的跨應(yīng)用性能調(diào)試監(jiān)控的能力。

本文演示了3個(gè)不同平臺(tái)的后端應(yīng)用使用CoreProfiler/NanoProfiler實(shí)現(xiàn)跨應(yīng)用的性能調(diào)試和監(jiān)控。這三個(gè)應(yīng)用包括.Net Core和傳統(tǒng)的.NET 4.5 Web項(xiàng)目,演示的技術(shù)包括:

  • 如何在.NET Core程序中使用CoreProfiler進(jìn)行Wcf服務(wù)、Http REST服務(wù)和EntityFramework數(shù)據(jù)庫(kù)調(diào)用的性能監(jiān)控;

  • 如何在傳統(tǒng).NET 4.5 Web項(xiàng)目中使用NanoProfiler進(jìn)行Wcf服務(wù)和Http REST服務(wù)調(diào)用的性能監(jiān)控;

  • 如何配置CoreProfiler/NanoProfiler實(shí)現(xiàn)自動(dòng)的跨平臺(tái)&應(yīng)用的整合性能調(diào)試和監(jiān)控;

完整的示例源碼,可以從下面的地址下載:
https://github.com/teddymacn/cross-app-profiling-demo

示例代碼目錄結(jié)構(gòu)

  • Core.UI - .Net Core Mvc 應(yīng)用,用于UI呈現(xiàn),調(diào)用外部Wcf服務(wù)和Http REST服務(wù)

  • Core.Api - .Net Core WebApi 應(yīng)用,提供Http REST服務(wù),使用EntityFramework進(jìn)行數(shù)據(jù)訪問(wèn)

  • Net45.Api - 傳統(tǒng).Net 4.5 WebApi 應(yīng)用,提供Wcf服務(wù)和Http REST服務(wù),調(diào)用自己提供的Wcf服務(wù),調(diào)用外部.Net Core Api提供的Http REST服務(wù)

示例代碼運(yùn)行步驟

  • 開(kāi)發(fā)環(huán)境要求:Windows 7+,IIS7+,VS2015 Update 3,.Net Core SDK VS Tool v1.0.0+;

  • 從github上git clone上面的示例repo;

  • 運(yùn)行run_api.cmd啟動(dòng)Core.Api服務(wù);

  • 使用VS2015打開(kāi)Net45.Api項(xiàng)目,按F5運(yùn)行,確保頁(yè)面打開(kāi)顯示正在運(yùn)行;

  • 運(yùn)行run_ui.cmd啟動(dòng)Core.UI服務(wù);

  • 在任意瀏覽器中訪問(wèn)Core.UI的首頁(yè):?http://127.0.0.1:3001;

  • 點(diǎn)擊打開(kāi)頁(yè)面上的鏈接,進(jìn)一步點(diǎn)擊鏈接,查看詳細(xì)的性能調(diào)試的結(jié)果;

  • 點(diǎn)擊drill down/drill up鏈接,查看關(guān)聯(lián)服務(wù)調(diào)用的性能調(diào)試結(jié)果;

  • 圖示

    訪問(wèn)Core.UI首頁(yè):

    查看Core.UI首頁(yè)的性能調(diào)試結(jié)果:

    注意上圖中的drill down鏈接,點(diǎn)擊這些鏈接,可以drill down到Core.UI對(duì)外發(fā)出的Wcf服務(wù)和REST服務(wù)調(diào)用的性能調(diào)試結(jié)果。比如,如果我們點(diǎn)擊http://127.0.0.1/Net45Api/AsyncHandler.ashx旁邊的drill down鏈接:

    在進(jìn)一步點(diǎn)擊http://127.0.0.1:3002/?from-Net45Api旁邊的drill down,我們可以看到從Net45.Api應(yīng)用調(diào)用Core.Api的REST服務(wù)的性能調(diào)試結(jié)果:

    代碼解析

    Core.UI

    Core.UI的project.json中,我們可以看到對(duì)CoreProfiler和Wcf相關(guān)的nuget package的引用:

    Core.UI的Startup中,我們可以看到,開(kāi)啟CoreProfiler性能調(diào)試,只需要添加這一行代碼(這里的參數(shù)true表示開(kāi)啟跨應(yīng)用drilldown功能):

    Net45ApiServiceConfiguration.cs中為Wcf服務(wù)的client添加了開(kāi)啟CoreProfiler的Wcf調(diào)試的Behavior:

    這個(gè)static partial方法,是.Net Core中,為由Wcf Connected Services生成的Wcf client代碼進(jìn)行額外配置的標(biāo)準(zhǔn)方式,這里不做詳述。

    在Core.UI/Controllers/HomeController.cs中,值得一提的是,對(duì)自定義REST請(qǐng)求,為使drilldown功能工作,需要添加一個(gè)header,使得兩個(gè)請(qǐng)求的性能調(diào)試結(jié)果能夠互相關(guān)聯(lián):

    調(diào)用Wcf服務(wù),無(wú)需特殊處理,因?yàn)榍懊嫣砑拥腤CF Behavior已經(jīng)自動(dòng)添加對(duì)應(yīng)的header:

    Core.Api

    Core.Api因?yàn)橥瑯邮?Net Core項(xiàng)目,總體配置方式和Core.UI類似,唯一額外的是,為EntityFramework,開(kāi)啟了的CoreProfiler的DB profiling支持:

    Net45.Api

    Net45.Api是一個(gè)傳統(tǒng).Net 4.5項(xiàng)目,在之前的NanoProfiler系列中,已經(jīng)介紹過(guò)NanoProfiler在Web應(yīng)用中的使用,這里不重復(fù)介紹了。這里唯一額外的是,開(kāi)啟了跨應(yīng)用drilldown功能,和.NetCore項(xiàng)目略有不同,需要左兩個(gè)步驟。

    步驟1,在Web.config中添加NanoProfilerImportModule:

    步驟2,在Global.asax.cs中,設(shè)置TryToImportDrillDownResult開(kāi)關(guān)為true:

    基本上就是這樣了,Enjoy!

    相關(guān)文章:

    • NanoProfiler - 適合生產(chǎn)環(huán)境的性能監(jiān)控類庫(kù) 之 基本功能篇

    • 采用MiniProfiler監(jiān)控EF與.NET MVC項(xiàng)目

    原文地址:http://www.cnblogs.com/teddyma/p/coreprofiler_cross_app_profiling_demo.html


    .NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

    贊賞

    人贊賞

    總結(jié)

    以上是生活随笔為你收集整理的使用CoreProfiler/NanoProfiler实现跨平台amp;应用的整合性能调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。