MiniProfiler 网站性能测试工具使用

news/2024/5/16 23:51:53/文章来源:https://blog.csdn.net/qq289523052/article/details/22948439

MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EF、EF CodeFirst等 )。并且以很友好的方式展现在页面上。

该Profiler的一个特别有用的功能是它与数据库框架的集成。除了.NET原生的 DbConnection类,profiler还内置了对实体框架(Entity Framework)以及LINQ to SQL的支持。任何执行的Step都会包括当时查询的次数和所花费的时间。为了检测常见的错误,如N+1反模式,profiler将检测仅有参数值存在差 异的多个查询。

MiniProfiler是以Apache License V2.0协议发布的,你可以在NuGet找到。配置及使用可以看这里:http://code.google.com/p/mvc-mini-profiler

为建立快速的网站黄金参考标准,雅虎2007年为网站提高速度的13个简易规则。

mvcminiprofiler

Stack Overflow 用MVC Mini Profiler来促进开源,而在把每一页的右上角服务器渲染时间的简单行来迫使我们解决我们所有的性能衰退和遗漏。如果你在使用.NET开发应用,一定要使用上这个工具。

包括以下核心组件:

  • MiniProfiler
  • MiniProfiler.EntityFramework

如何安装?

一、环境准备
  • Visual Studio 2010
  • ASP.NET MVC项目
  • 如果需要调试EF,建议升级到Entity Framework 4.2
二、安装

推荐使用NuGet方式进行安装,参考文章《使用 NuGet 管理项目库》

  • 第一步:在引用上右键选择“Manage NuGet Packages”
    • 第二步:Online搜索miniprofiler

    image

    MiniProfiler、MiniProfiler.EF、MiniProfiler.MVC3,同时会自动安装依赖组件:WebActivator, 同时也会自动在项目里面添加代码文件:MiniProfiler.cs

    • 第三步:修改代码使MiniProfiler生效

    在global.cs的Application_Start事件里面增加代码: StackExchange.Profiling.MiniProfilerEF.Initialize();
    修改View的layout文件,在head区域增加如下代码:@StackExchange.Profiling.MiniProfiler.RenderIncludes()

         第四步:在web.config中handlers节点下添加

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

     

    如果安装步骤一切顺利的话,打开站点的时候,就可以在左上角看到页面执行时间了,点开可以看到更详细的信息,如果有SQL的话,还会显示SQL语句信息,非常的方便。 页面上如果有ajax请求,也会同时显示到左上角。如果左上角显示红色提示,则表示可能存在性能问题需要处理:

    image

    点开SQL部分,可以看到详细的SQL语句

    image

    标记为duplicate的部分,代表在一次请求当中,重复执行了查询,可以优化。

    问题:

    1、在结合使用EF 4.3的时候发生如下错误:

    Invalid object name 'dbo.__MigrationHistory'.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
       at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
       at System.Data.SqlClient.SqlDataReader.get_MetaData()
       at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
       at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
       at MvcMiniProfiler.Data.ProfiledDbCommand.ExecuteDbDataReader(CommandBehavior behavior) in \mvc-mini-profiler\MvcMiniProfiler\Data\ProfiledDbCommand.cs:line 155
       at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)

    需要在EF 4.3上关闭数据库初始化策略:

    public class SettingContext : DbContext
    {
            static SettingContext()
            {
                Database.SetInitializer<SettingContext>(null);
            }


    转载自:http://www.cnblogs.com/shanyou/archive/2012/04/03/2430977.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_903838.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开启CDN加速

CDN 腾讯云和七牛云CDN都有免费额度 七牛云CDN每个月 CDN-HTTP 下载流量 1GB 免费&#xff08;仅HTTP免费&#xff09;。 腾讯云CDN用户每月均可享受 10 GB 免费流量包&#xff0c;接入加速域名后于次月 1 号发放至您的账户。新开通 CDN 的用户还会在开通后的 6 个月内每月收到…

使用新浪云搭建个人网站

本文介绍下 通过新浪云 如何搭建个任务网站&#xff0c;我们平时开发 想把自己的代码通过外部链接访问有很多办法&#xff0c;这里介绍的是一种免费方式&#xff0c; 首先有以下几个步骤: 1.注册新浪云账号 2.创建云应用SAE 3.上传代码 4.通过配置的域名访问 一、注册新浪云 注…

爬取网站的背景调研

在爬取一个网站之前我们首先需要对目标站点的规模和结构进行一定程度的了解&#xff0c;这里可以通过对网站自身的robots.txt和Sitemap文件进行了解。 robots.txt文件让爬虫了解爬取该网站存在哪些限制&#xff0c;这里以淘宝网为例&#xff0c;如下所示&#xff1a; 里面列出…

web端网站接入支付宝支付过程

1、在支付宝开放平台&#xff08;https://open.alipay.com/platform/home.htm&#xff09;申请对应的功能 找到页或者移动应用列表 你可以看到你已申请的应用 点击进入应用详情增加功能&#xff1a; 2、在自己的javaweb应用里引入对应的jar包 <!--阿里支付SDK--><dep…

腾讯云CVM服务器安装宝塔面板 快速安装可视化网站管理环节

本文原创来自&#xff1a;https://www.laomulu.com/cvm-bt/ 宝塔面板最近发展还是蛮快的&#xff0c;算是国内比较好用且功能较多的免费WEB面板&#xff0c;可以在LINUX和WINDOWS系统中都有版本支持。如果我们希望搭建可视化的WEB面板的&#xff0c;也可以在腾讯云CVM服务器中…

腾讯云服务器Windows系统安装宝塔面板配置建站环境

腾讯云专题网在前面有介绍到几篇Linux系统建站的部署配置&#xff0c;其中有我们熟悉的无面板LNMP&#xff08;腾讯云服务器一键安装LNMP/LAMP建站环境图文教程&#xff09;&#xff0c;也有什么熟悉的有面板宝塔面板&#xff08;腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站…

LAMP网站架构---(二)PHP、nginx结合php-fpm、memcache、openresty

3#### 一、PHP的安装部署 网址导航&#xff1a;https://www.php.net/ PHP简介: PHP&#xff08;外文名:PHP: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”&#xff09;是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&#xff0c;利…

LAMP网站架构---(三)Tomcat、memcache交互存储

Tomcat Tomcat是Apache下的一个核心子项目&#xff0c;是使用量较大的免费的JAVA服务器。主要处理的是JSP页面和Servlet文件。Tomcat常常与Apache整合起来使用&#xff0c;Apache处理静态页面&#xff0c;比如Html页面&#xff0c;而Tomcat负责编译处理JSP页面与Servlet。在静态…

LAMP网站架构---(四)LVS+Keepalived高可用负载均衡

基本信息 简介&#xff1a; LVS是Linux Virtual Server的简写&#xff0c;意即Linux虚拟服务器&#xff0c;是一个虚拟的服务器集群系统&#xff1b;本项目在1998年5月由章文嵩博士成立&#xff0c;是中国国内最早出现的自由软件项目之一 使用集群技术和Linux操作系统实现一…

LAMP网站架构---(五)HAProxy+Pacemaker高可用负载均衡

基本信息 HAProxy是一个使用C语言编写的自由及开放源代码软件&#xff0c;其提供高可用性、负载均衡&#xff0c;以及基于TCP和HTTP的应用程序代理 HAProxy特别适用于那些负载特大的web站点&#xff0c;这些站点通常又需要会话保持或七层处理 HAProxy运行在当前的硬件上&…

javaweb项目 基于jsp+servlet的 个人博客网站

源代码和获取更多信息 >源代码MyBlog MyBlog a personal blog site based on Jsp/Servlet - 基于jsp/servlet的个人博客网站 introduction - 简介 java web博客项目&#xff0c;实现mvc模式&#xff0c;没有使用到框架&#xff0c;实现了首页预览&#xff0c;文章发布&a…

网络另类生意闷声挣钱 一人经营几十万个网站

对于自己的“另类生意”&#xff0c;许扬有充分的自信&#xff0c;“我就是把整个业务模式都公开&#xff0c;别人也很难复制&#xff0c;太难了”。 本报记者 徐胤 摄 创业篇 视频网站、交友网站、行业网站&#xff0c;正当数以万计的网络掘金者们在这些热门业务中争得头破血流…

网站测试步骤

网站测试需分以下五个阶段进行才能提交客户&#xff0c;所有测试均提供测试报告&#xff1a; a.功能测试  b.性能测试  c.可用性测试  d.兼容性测试  e.安全测试 功能测试&#xff1a; 1、链接测试 链接是Web应用系统的一个主要特征&#xff0c;它是在页面之间切换和指…

给自己的网站添加HTTPS / 优化 / 续约

写在前面 这里面我主要是自己独立的服务器添加HTTPS支持&#xff0c;关于对GitHub个人站点添加的以后再写。我的笔记和操作使用的是免费的域名和免费的HTTPS证书&#xff0c;但是操作对于所有的来说都是一样的。证书基于 TrustAsia&#xff0c; 别的都差不多的。VPS 上用的LNM…

使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

注&#xff1a;在阅读本文前&#xff0c;请先阅读&#xff1a; 使用IntelliJ IDEA开发SpringMVC网站&#xff08;一&#xff09;开发环境 使用IntelliJ IDEA开发SpringMVC网站&#xff08;二&#xff09;框架配置 访问GitHub下载最新源码&#xff1a;https://github.com/gauss…

大型网站应用之海量数据和高并发解决方案总结一二

一、网站应用背景 开发一个网站的应用程序&#xff0c;当用户规模比较小的时候&#xff0c;使用简单的&#xff1a;一台应用服务器一台数据库服务器一台文件服务器&#xff0c;这样的话完全可以解决一部分问题&#xff0c;也可以通过堆硬件的方式来提高网站应用的访问性能&…

Yupoo! 的网站技术架构

作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/arch/yupoo_arch.html 又有机会爆料国内 Web 2.0 网站的架构了。这次是 Yupoo! 。非正式的采访了一下 Yupoo!(又拍网) 的创建人之一的 阿华&#xff08;沈志…

.NET 发布网站步骤

本文章分为三个部分: web网站发布、IIS6 安装方法、ASP.NET v4.0 安装方法 一、web网站发布 1.打开 Visual Studio 2013 编译环境 2.在其解决方案上右击弹出重新生成解决方案,以查看是否有错误 3.如果项目没有错误右击WebUI层发布

新概念绿色上网工具,向网站病毒say no

Dear All: 近來很多網站都含有病毒或木馬程式,而上網者多數都是用超級用戶或power user的權限上網,中招後惡意程序會更改windows系統,或設置一些木馬程序.用戶電腦的資料完全暴露,而且還要忍受廣告困擾,雖然裝有防毒軟件,但防毒軟件也不是萬能,特別是木馬程序,經常變化.所以用戶…

PHP——网站构成即LAMP基础知识

网站的构成&#xff1a; 客户端IE/FireFox/Safari等多种浏览器 超文本标记语言HTML 层叠样式表CSS 客户端脚本编程语言JavaScript/VBScript/Applet等中的一种 Web服务器Apache/ Nginx/TomCat/IIS等中的一种 服务器端编程语言PHP/JSP/ASP等中的一种 数据库管理系统MySQL…