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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

使用MiniProfiler跟踪MVC + EF + Bootstrap 2 权限管理系统的性能消耗

發布時間:2024/6/21 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用MiniProfiler跟踪MVC + EF + Bootstrap 2 权限管理系统的性能消耗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝MiniProfiler

在MVC + EF + Bootstrap 2 權限管理系統入門級(附源碼)文章中下載了它的源碼,調試模式下打開一個頁面都要再2.5秒以上,所以使用MiniProfiler、MiniProfiler.MVC4 、MiniProfiler.EF6組件進行了分析。

首先,依次序安裝組件。然后,修改Global.aspx.cs 文件:

protected void Application_Start(){AreaRegistration.RegisterAllAreas();WebApiConfig.Register(GlobalConfiguration.Configuration);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);//自定義View ViewEngines.Engines.Clear();ExtendedRazorViewEngine engine = new ExtendedRazorViewEngine();engine.AddPartialViewLocationFormat("~/Areas/Common/Views/Shared/{0}.cshtml");engine.AddPartialViewLocationFormat("~/Areas/Common/Views/Shared/{0}.vbhtml");ViewEngines.Engines.Add(engine);//Model去除前后空格ModelBinders.Binders.DefaultBinder = new TrimModelBinder();//設置MEF依賴注入容器 MefConfig.RegisterMef();//初始化EF6的性能監控 MiniProfilerEF6.Initialize();//初始化DB DatabaseInitializer.Initialize();}protected void Application_BeginRequest(){StackExchange.Profiling.MiniProfiler.Start();}protected void Application_EndRequest(){StackExchange.Profiling.MiniProfiler.Stop();}

? ?MiniProfilerEF6.Initialize(); 一定要放在?DatabaseInitializer.Initialize(); 之前,否則會報如下錯誤:

An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user code.?Additional information:?The Entity Framework was already using a DbConfiguration instance before an attempt was made to add an 'Loaded' event handler. 'Loaded' event handlers can only be added as part of application start up before the Entity Framework is used."

運行站點有可能還會遇到這個錯誤:

An exception of type 'System.Data.SqlClient.SqlException' occurred in MiniProfiler.dll but was not handled in user code

Additional information: Invalid column name 'CreatedOn'.

解決方法是:

1.禁用這種類型的異常斷點(不可取)

2.刪除packages\MiniProfiler.3.2.0.157\lib\net40 下的MiniProfiler.PDB文件(我是這么做的)

3.禁用EF的數據庫變化跟蹤(未驗證,應該管用)

Found an answer for my question. Thanks all for replies.Database.SetInitializer<MyContext<Label>>(null); This fixes the problem and disables DB changes tracking in EF.

運行站點打開登陸頁

Sql占了47.7%,點開可以查看執行了哪些sql語句。

?

分析頁面耗時

首先,調試模式下運行Debug和Release代碼,耗時差不多都很長,截圖如下:

?

? ??

? ?

然后,非調試模式(Ctrl+F5)運行,截圖如下:

?

非調試模式(Ctrl+F5)的效率還是挺不錯的,沒想到和調試模式(F5)差別會這么大。使用必應搜了一下找到一個帖子 :Visual C++: Difference between Start with/without debugging in Release mode

里面的解釋是

The problem is that Windows drops in a special Debug Heap, if it detects that your program is running under a Debugger. This appears to happen at the OS level, and is independent of any Debug/Release mode settings for your compilation.

You can work around this 'feature' by setting an environment variable: _NO_DEBUG_HEAP=1

This same issue has been driving me nuts for a while; today I found the following, from whence this post is derived: http://blogs.msdn.com/b/larryosterman/archive/2008/09/03/anatomy-of-a-heisenbug.aspx

?另外為了更細化的跟蹤某個方法的耗時可以在代碼中這么寫:

public AdminLayoutAttribute(){//TODO: Test//var userRole = new List<UserRole> { new UserRole { Id = 1, UserId = 1, RoleId = 1 } };//var user = new User { Id = 1, LoginName = "admin", LoginPwd = "8wdJLK8mokI=", UserRole = userRole };//SessionHelper.SetSession("CurrentUser", user);var user = SessionHelper.GetSession("CurrentUser") as User;if (user != null){// using (StackExchange.Profiling.MiniProfiler.StepStatic("AdminLayout")) using (MiniProfiler.Current.Step("AdminLayout")){// Enqueue a jobvar container = System.Web.HttpContext.Current.Application["Container"] as CompositionContainer;UserService = container.GetExportedValueOrDefault<IUserService>();RoleService = container.GetExportedValueOrDefault<IRoleService>();RoleModulePermissionService = container.GetExportedValueOrDefault<IRoleModulePermissionService>();ModuleService = container.GetExportedValueOrDefault<IModuleService>();ModulePermissionService = container.GetExportedValueOrDefault<IModulePermissionService>();PermissionService = container.GetExportedValueOrDefault<IPermissionService>();}}}

再次訪問模塊管理時就可以看到AdminLayout的耗時了,好像耗時特別小時這里就不記錄

?

總之有這么一個組件確實可以量化執行過程的耗時。對方法調用次數執行分析更強大的工具還是DotTrace,如圖:

?

參考鏈接:

MiniProfiler(MiniProfiler.EF6監控調試MVC5和EF6的性能)?

解決:MiniProfiler.EF出現System.InvalidOperationException”類型的異常在 EntityFramework.dll 中發生

Entity Framework 4.3. Invalid column name 'CreatedOn'

Miniprofiler breaks on missing CreatedOn column

?

轉載于:https://www.cnblogs.com/zeroes/p/miniProfiler.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的使用MiniProfiler跟踪MVC + EF + Bootstrap 2 权限管理系统的性能消耗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 大地av| 久久99精品国产麻豆婷婷 | 黄色网址在线视频 | 亚洲国产影视 | 青青青手机视频 | 波多野结衣不卡视频 | 亚洲视频日韩 | 久久久久久久久免费看无码 | 免费视频www在线观看网站 | 少妇又紧又色又爽又刺激 | 亚洲综合中文字幕在线 | 亚洲视频综合 | 亚洲精品成人片在线观看精品字幕 | 国产精品午夜电影 | 五月天中文字幕在线 | 亚洲视频色图 | www.69pao.com| 国产精品高清无码 | 福利国产片| 二区三区不卡 | 久久午夜视频 | 精品性久久 | 特大黑人娇小亚洲女mp4 | 国产成人短视频 | 日韩欧美久久精品 | 亚洲成人手机在线 | 国产精品免费av一区二区 | 婷婷丁香社区 | 女生和男生一起插插插 | 亚洲国产一区二区三区四区 | 鲁一鲁av| 国产黄色在线免费观看 | 五月婷激情 | 黄色aaa视频 | 天海翼av在线播放 | 亚洲一区免费视频 | 亚洲第一页中文字幕 | 国产在线无 | 亚洲欧美va天堂人熟伦 | 99久久精品免费看国产交换 | 黑森林福利视频导航 | 岛国免费视频 | 久久国产精品毛片 | 亚洲一区二区三区电影 | 亚洲第一视频网站 | 色无五月 | √资源天堂中文在线视频 | 5566毛片 | 午夜精品久久久久久99热 | 一级黄色片视频 | 色窝| 99精品久久毛片a片 成人网一区 | 激情伦成人综合小说 | 国产日韩免费视频 | 亚洲一级在线播放 | 欧美v日韩 | 亚洲一卡二卡 | 欧美日韩激情视频在线观看 | 日韩黄色片免费看 | 一区二区三区精品免费视频 | 噜噜噜精品欧美成人 | 日xxxx| 国产精品国产一区二区三区四区 | 日本视频在线看 | 一本久道在线 | 天堂俺去俺来也www久久婷婷 | 国产a∨精品一区二区三区仙踪林 | 久久婷婷网 | 免费在线不卡视频 | 日韩成人在线视频观看 | 北条麻妃在线一区二区 | 99在线观看视频 | 国产三级黄色 | 免费处女在线破视频 | av在线天天 | 国产噜噜噜噜噜久久久久久久久 | 欧美jizzhd欧美18 | 女人张开双腿让男人捅 | 爱情岛黄色 | 国产精品国语 | 免费成人国产 | 啪啪短视频| 日韩av在线播 | 三级av免费 | 超碰1000 | 又黄又爽又刺激的视频 | 日本不卡在线视频 | 国产粉嫩一区二区三区 | 亚洲欧美在线播放 | 光明影院手机版在线观看免费 | 久久性生活片 | 日本在线免费观看视频 | 国精产品一区一区三区在线 | 天堂网av2018| 国产xxxx在线 | 午夜精品福利影院 | 亚洲人在线 | 人人澡人人爱 | 国产一级淫片a |