MiniProfiler監控調試MVC5以及EntityFramework6性能

来源:https://www.cnblogs.com/wift/archive/2019/06/21/11064545.html
-Advertisement-
Play Games

想要通過在MVC中view中直觀的查看頁面載入以及後臺EF執行情況,可以通過MiniProfiler小工具來實現。 但是從網上搜索的相關信息要麼是MVC4下的老版本的MiniProfiler,要麼就是標題是MVC5+EF6但是里講的根本實現不了結果。 經過我自己一番折騰後,終於成功搞定。 具體操作分 ...


想要通過在MVC中view中直觀的查看頁面載入以及後臺EF執行情況,可以通過MiniProfiler小工具來實現。

但是從網上搜索的相關信息要麼是MVC4下的老版本的MiniProfiler,要麼就是標題是MVC5+EF6但是里講的根本實現不了結果。

經過我自己一番折騰後,終於成功搞定。

具體操作分為三步:

 

ps:沒圖說個毛啊。

上圖:

 

現在將具體的操作步驟記錄一下,方便以後用到。

1、安裝MiniProfiler.EF6

寫在前面:

1、需要在vs中添加MiniProfiler、MiniProfiler.EF6、MiniProfiler.MVC5三個包

2、引用的三個包版本MiniProfiler 4.0.165, MiniProfiler.EF6 4.0.165 ,MiniProfiler.MVC5 4.0.165

引用情況如下:

 

2、將MiniProfiler.EF配置到項目中

1、配置Global.asax文件

打開Global.asax文件,在Application_Start方法中添加MiniProfiler的配置,需要添加兩個代碼:

MiniProfiler.Configure(new MiniProfilerOptions()
MiniProfilerEF6.Initialize()

手動添加Application_BeginRequest、Application_EndRequest兩個方法。

Application_BeginRequest方法中添加如下代碼:

if (Request.IsLocal)
            {
                MiniProfiler.StartNew();

            }

 

Application_EndRequest方法中添加如下代碼:

  MiniProfiler.Current?.Stop();

 

配置好後的完整內容:

2、修改_Layout.cshtml佈局文件

首頁在Views\Shared\_Layout.cshtml頁面中引入兩個文件

@using StackExchange.Profiling.Mvc
@using StackExchange.Profiling

然後在<body>標簽最後添加一行代碼:

@(MiniProfiler.Current.RenderIncludes())

配置好後的頁面如下:

3、修改Web.config

在Web.config中

<system.webServer>
<handlers>

節點下插入代碼

      <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />

要在頁面上顯示MVC和EF的調試跟蹤時間必須要加入上面的代碼

配置圖如下:

3、運行結果

 

4、具體方法執行性能監控

如果需要監控具體的一個操作的性能,可以通過添加如下代碼實現:

只需要將想要監控的操作放到//Todo中就可以了。

 

本地測試代碼配置如下:

 

展示一下執行效果

上面多出了剛纔後臺配置的“執行插入操作”,“執行查詢操作”兩個操作的記錄。這樣就可以細緻的監控到咱們想要監控的內部具體操作情況了。

可以方便我們及時、快速、方便的找出代碼的性能瓶頸所在。

PS:如果有描述的不對的,請各位不吝賜教,我好及時修改,以免給其他看到的人造成錯誤示範

謝謝


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題:有時已有項目要移植,例如原來在廣州地區使用的某系統,突然說惠州那邊也要用這套一樣的系統。或者,在demo環境下弄了一些測試數據。然後要清空全部表數據。如果表比較多的話,逐個表手工編寫腳本就太麻煩了。 解決方案:使用系統存儲過程sp_MSforeachtable結合truncate table語 ...
  • SQL Server 2017 的各版本和支持的功能 https://docs.microsoft.com/zh-cn/sql/sql-server/editions-and-components-of-sql-server-2017?view=sqlallproducts-allversions ...
  • MySql資料庫是比較常用的關係型資料庫,操作用的是sql語句,下麵來說一說MySql的一些基本操作 MySql資料庫是一種C/S型的模式,即客戶端/伺服器端,對應到具體應用上,便是bin目錄下的mysql.exe和mysqld.exe,mysql是客戶端,mysqld是伺服器端。 所以先要啟動my ...
  • MySQL記錄操作 概覽 MySQL數據操作: DML 在MySQL管理軟體中,可以通過SQL語句中的DML語言來實現數據的操作,包括 1. 使用INSERT實現數據的插入 2. UPDATE實現數據的更新 3. 使用DELETE實現數據的刪除 4. 使用SELECT查詢數據以及。 插入數據inse ...
  • 1. 從https://github.com/neo4j-contrib/neo4j-graph-algorithms/releases下載相應版本jar包,放到 C:\Users\Administrator\.Neo4jDesktop\neo4jDatabases\database-資料庫ID\i ...
  • 在下麵這篇《獲取字元串結尾的電話號碼(案例)》https://www.cnblogs.com/insus/p/11064685.html中,仞僅中截取電話號碼,如果想獲取字元串開始的地址呢? 可以寫另外一個函數: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ...
  • 問題來自: 以下是Insus.NET的解決方法,僅是截取字元串結尾的電話號碼即可,寫一個簡的自定義函數: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Blog: https://insus.c ...
  • 說到排序,想必大家都知道MySQL中的“ORDER BY”這個關鍵詞吧,使用它可以實現查詢數據根據某一欄位(或多個欄位)的值排序,那麼如何實現數據的任意排序操作呢? 其實這裡我所說的“隨意排序”,本質上來說是一種假象,後臺SQL語句中依然使用到了ORDER BY關鍵詞,只不過我在數據表中加入了一個字 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...