Miniprofiler在普通net项目中的使用
生活随笔
收集整理的這篇文章主要介紹了
Miniprofiler在普通net项目中的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MiniProfiler是一款針對.NET, Ruby, Go and Node.js的性能分析的輕量級程序。可以對一個頁面本身,及該頁面通過直接引用、Ajax、Iframe形式訪問的其它頁面進行監控,監控內容包括數據庫內容,并可以顯示數據庫訪問的SQL(支持EF、EF CodeFirst等 )。并且以很友好的方式展現在頁面上。
MiniProfiler官網:http://miniprofiler.com/
MiniProfiler的一個特別有用的功能是它與數據庫框架的集成。除了.NET原生的 DbConnection類,MiniProfiler還內置了對實體框架(Entity Framework)以及LINQ to SQL、RavenDb和MongoDB的支持。任何執行的Step都會包括當時查詢的次數和所花費的時間。為了檢測常見的錯誤,如N+1反模式,profiler將檢測僅有參數值存在差異的多個查詢。
???private?class?Lookup<T>?:?ConcurrentDictionary<object,?T>?{?/*?just?for?brevity?*/?}private?static?readonly?Lookup<DbProviderServices>?_DbProviderServicesCache?=?new?Lookup<DbProviderServices>();private?static?readonly?object?_nullKeyPlaceholder?=?new?object();//private?static?readonly?ConcurrentDictionary<DbProviderServices,?DbProviderServices>?ProviderCache?=?new?ConcurrentDictionary<DbProviderServices,?DbProviderServices>();public?static?void?Initialize(){try{DbConfiguration.Loaded?+=?(_,?a)?=>{a.ReplaceService((DbProviderServices?inner,?object?key)?=>?_DbProviderServicesCache.GetOrAdd(key????_nullKeyPlaceholder,?__?=>?new?EFProfiledDbProviderServices(inner)));};//DbConfiguration.Loaded?+=?(EventHandler<DbConfigurationLoadedEventArgs>)((_,?a)?=>//????a.ReplaceService((DbProviderServices?inner,?object?key)?=>//?????????new?EFProfiledDbProviderServices(inner)));//MiniProfilerEF6.ExcludeEntityFrameworkAssemblies();}catch?(SqlException?ex){if?(ex.Message.Contains("Invalid?column?name?'ContextKey'"))return;throw;}}}總結
以上是生活随笔為你收集整理的Miniprofiler在普通net项目中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 码农身份得到正式认证
- 下一篇: 太神奇了!使用C#实现自动核验健康码:(