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项目中的使用相关推荐

  1. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  2. android studio 自动提示jni代码,如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中...

    从现有项目中执行以下步骤: 1.修改build.gradle(模块应用程序)看起来像这样(很多变化!): apply plugin: 'com.android.model.application' m ...

  3. android使用webview上传文件,Android项目中如何在webview页面中上传文件

    Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...

  4. java fragment_Java Web Fragment在项目中使用方法详解

    Web Fragment 是什么 - 它是在 servlet 3.0开始支持的,可以把一个dy web项目拆分为多个项目,解耦合,使其在项目中开发效率提高,下面我演示简单的项目创建过程 用eclips ...

  5. JAVA Web项目中所出现错误及解决方式合集(不断更新中)

    JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...

  6. Android Studio 在项目中引用第三方jar包

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets {main {j ...

  7. Database项目中关于Procedure sp_refreshsqlmodule_internal的错误

    最近项目中发现一怪问题,使用DB项目发布数据库时,总提示 "(110,1): SQL72014: .Net SqlClient Data Provider: Msg 1222, Level ...

  8. 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...

    几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...

  9. C++项目中的extern C {}

    2010-07-10 19:45 by 吴秦, 92864 阅读, 22 评论, 收藏, 编辑 引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: ? 1 2 3 4 5 6 7 8 9 ...

最新文章

  1. react hooks使用_如何使用React和Hooks检测外部点击
  2. “GAN之父”:当初为了深度学习买GPU,现在后悔没多挖点比特币
  3. Keil恢复默认界面
  4. JavaScript的函数
  5. 用Chrome开发者工具调试一切
  6. 你认为手机会取代个人电脑吗?
  7. Java开发专业通过swot分析岗位_掌起智能科技 | 你们要的安卓岗位来了,还有JAVA,技术经理等岗位...
  8. Mime类型与文件后缀对照表及探测文件MIME的方法
  9. 认识zookeeper
  10. Android工程开发笔记一
  11. 怎么找到服务器的文档,服务器怎么找到数据库
  12. 软件工程学习进度第六周暨暑期学习进度之第六周汇总
  13. 数据结构+算法+c++学习(写在前面)
  14. 信用评分卡 (part 6 of 7)
  15. 零延时RS-485接口电路的设计与应用
  16. python判断文字是否是中文
  17. FPAG—UART串口实现与解析-黑金fpga资料解析
  18. Linux用户和用户组的管理-羽飞作品
  19. centOS7下安装配置nagios
  20. 盘点一道窗口函数的数据分析面试题

热门文章

  1. Linux系列-Red Hat5平台下的Postfix邮件服务搭建(二)
  2. sudo 安装 常见错误
  3. From 7.8 To 7.14
  4. 一张图看懂微软Power BI系列组件
  5. UVa 10061 How many zero's and how many digits?
  6. LeetCode:Sudoku Solver Valid Sudouku
  7. 安卓随机通话记录_Android 通话记录
  8. 从Microsoft Teams技术栈看前端技术发展趋势
  9. 什么是Adobe Lightroom,我需要它吗?
  10. 键盘忍者:使用单个热键弹出Vista日历