今天在优化系统性的时候,想到了 ASP.NET 里的 CompilationMode="Never", 因为用户控件里没有任何代码, 只有控件,把用户控件的编译模式改为 Never 后,发现性能比不设置为 Never 还差一点。于是写了一个简单的测试页面,专门测试了一下,发现 CompilationMode="Never" 性能却实要差一点:

用户控件:

<%@ Control Language="C#" ClassName="WebUserControl" %>
<table>
<tr>
<td> <asp:TextBox runat="server" ID="TextBox1" /><br />
<asp:TextBox runat="server" ID="TextBox2" /><br />
<asp:TextBox runat="server" ID="TextBox3" /><br />
<asp:TextBox runat="server" ID="TextBox4" /><br />
<asp:TextBox runat="server" ID="TextBox5" /><br />
<asp:TextBox runat="server" ID="TextBox6" /><br />
<asp:TextBox runat="server" ID="TextBox7" /><br />
<asp:TextBox runat="server" ID="TextBox8" /><br />
<asp:TextBox runat="server" ID="TextBox9" /><br />
<asp:TextBox runat="server" ID="TextBox10" /><br />
<asp:TextBox runat="server" ID="TextBox11" /><br />
<asp:TextBox runat="server" ID="TextBox12" /><br />
<asp:TextBox runat="server" ID="TextBox13" /><br />
<asp:TextBox runat="server" ID="TextBox14" /><br />
<asp:TextBox runat="server" ID="TextBox15" /><br />
<asp:TextBox runat="server" ID="TextBox16" /><br />
<asp:TextBox runat="server" ID="TextBox17" /><br />
<asp:TextBox runat="server" ID="TextBox18" /><br />
<asp:TextBox runat="server" ID="TextBox19" /><br />
<asp:TextBox runat="server" ID="TextBox20" /> </td>
</tr>
</table>

页面代码:

protected void Page_Load(object sender, EventArgs e)
{
Stopwatch sw = new Stopwatch();
sw.Start();
var ctrl = this.LoadControl("WebUserControl.ascx");
sw.Stop(); this.Label1.Text = sw.Elapsed.TotalMilliseconds.ToString();
}

在不设置的 CompilationMode 属性的情况下:

第一次:235.7548

第二次:0.1019

第三次:0.0824

第四次:0.035

第五次:0.0963

设置 CompilationMode=“Never" 后的情况:

第一次:23.8643

第二次:0.1284

第三次:0.138

第四次:0.1119

第五次:0.1314

虽然两都没有太大的差距,但俺就是迸着性能优化来的。

系统里由于用户控件页面文件比测试的要大的多,所以测试的差距也在大得多。

如果性能还要差,微软还搞这个选项来做什么,不知道是不是我的测试有问题呢?

EDFX 快速开发平台
一个开放源代码的快速开发平台

关于 ASP.NET 的 CompilationMode="Never" 性能问题的更多相关文章

  1. ASP.NET Web API 提升性能的方法实践

    ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...

  2. [网站性能2]Asp.net平台下网站性能调优的实战方案

    文章来源:http://www.cnblogs.com/dingjie08/archive/2009/11/10/1599929.html 前言    最近帮朋友运营的平台进行了性能调优,效果还不错, ...

  3. Asp.net平台下网站性能调优的实战方案(转)

    转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来 ...

  4. 使用MiniProfiler调试ASP.NET web api项目性能

    本质上,集成Miniprofiler可以分解为三个问题: 怎样监测一个WebApi项目的性能. 将性能分析监测信息从后端发送到UI. 在UI显示分析监测结果. 首先安装Miniprofiler,Min ...

  5. ASP.NET中26种性能优化方法

    系统类  Type类,Object类,String类, Arrary类,Console类, Exception类,GC类, MarshalByRefObject类, Math类. DateTime结构 ...

  6. 【ASP.NET MVC路由测试+性能调试工具】

    http://getglimpse.com https://github.com/Glimpse/Glimpse 百度网盘: http://pan.baidu.com/s/1jHuTtKa

  7. MiniProfiler监控Asp.Net MVC5和EF性能

    1. 安装依赖包 在web项目打开nuget包管理器搜索 MiniProfiler.Mvc5和MiniProfiler.EF6安装. 2. 在Global.asax中添加配置代码 protected ...

  8. 8 种提升 ASP.NET Web API 性能的方法

    ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...

  9. 使用Jil序列化JSON提升Asp.net web api 性能

    JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入自定义的MediaTypeFormatter(媒体格式化器), 说白了 ...

随机推荐

  1. oracle 索引,组合索引

    1. 组合索引 id,code      组合 id,number  组合 2. 排序cost 使用 id ,cost=0 使用 id+code  cost=0 使用 id+number  cost= ...

  2. java图形用户界面边界布局管理器

    总结:不同方向的组件,所用的板是不同的: package com.moc; //用布局写一个界面 ///运用边界布局 //2个按钮在北,2个按钮在南 //中央一个大按钮 //将同一方向的组件封装后布局 ...

  3. kali virtualbox

    提示需要头文件错误 C header files matching your running kernel were not found.  Refer to your distribution's ...

  4. BIOS设置fn

    在BIOS中可以设置fn开启或者关闭,但可能有某些电脑设置了也无效,可能需要更新BIOS驱动等等.

  5. HTTP之Web服务器

    一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. HTTP 报文首部 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字段同时存在于 ...

  6. LinqHelper连接数据库配置

    LinqHelper连接数据库配置/// <summary> /// Linq通用数据访问类 /// 指定TDataBase来代替后面要使用的数据上下文(指代) /// where:说明指 ...

  7. python学习——练习题(2)

    """ 题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元 ...

  8. Python 小练习一

    1.如果同一个ip地址60s之内访问超过200次,那么就把ip加入黑名单 需求分析: 1.60s读一次文件 2.分割,取第一个元素,ip地址 3.把所有ip加入到一个list里面,如果ip次数超过20 ...

  9. CentOS Firewall简单使用

    启动 systemctl start firewalld 停止 systemctl stop firewalld 获取 firewalld 状态 firewall-cmd --state 在不改变状态 ...

  10. redis-win7

    http://blog.csdn.net/renfufei/article/details/38474435