今天在优化系统性的时候,想到了 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. linux的审计功能(audit)

    为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...

  2. MyBatis collection的两种形式——MyBatis学习笔记之九

    与association一样,collection元素也有两种形式,现介绍如下: 一.嵌套的resultMap 实际上以前的示例使用的就是这种方法,今天介绍它的另一种写法.还是以教师映射为例,修改映射 ...

  3. org/apache/hadoop/hbase/mapreduce/TableReducer:Unsupported major.minor version52.0

    问题详情: 问题原因: <dependency>    <groupId>org.apache.hbase</groupId>    <artifactId& ...

  4. 1041 Be Unique

    题意:找到一串数字序列中首个出现的不重复的数字. 思路:用哈希,因为数值大小在[1,10^4],所以可以直接开数组.输入数据时记录每个数字出现过的次数.然后遍历原序列,遇到第一个次数为1的数字就是所求 ...

  5. 怎么样使用yum来安装mysql

    linux下使用yum安装mysql,以及启动.登录和远程访问. 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没 ...

  6. JAVA面试(5)

    这里列出10条JAVA编程经验 1 字符串常量放在前面 把字符串常量放在equals()比较项的左侧来防止偶然的NullPointerException. // Bad if (variable.eq ...

  7. 分布式爬虫搭建系列 之四---scrapy分布式框架

    带录入SAFCDS 

  8. android 侧滑菜单

    就是用手一滑才出现,占手机半个多屏幕的菜单.为了美观和页面转跳,很多时候要用到. 实现的话就是使用官方的DrawerLayout,注意这个布局一定要是最顶层的布局. 在DrawerLayout里面直接 ...

  9. Mycat实战之数据迁移(oracle -- mysql)

    1.案例场景: Mycat 后面接一个 Oracle 实例与一个 MySQL 实例,假设用户表,订单表,转账记录表, Oracle 字符集为 GBK 的,MySQL 字符集则要求 UTF8的 完成用户 ...

  10. OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱

    //参照FreeImage官网给出的CTextrueManager写的加载函数 //官方给的例子是用opengl3.0以下的旧GL写的,没有使用glGenerateMipmap(GL_TEXTURE_ ...