今天在优化系统性的时候,想到了 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. fragment用法

    简单用法: 1.新建布局.新建fragment类 2.在activity_main.xml中添加fragment <LinearLayout...... <fragment android ...

  2. NOIP 2008 立体图 (字符串+模拟)

    立体图 时间限制: 1 Sec  内存限制: 50 MB提交: 2  解决: 0[提交][状态][讨论版][命题人:外部导入] 题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的 ...

  3. sysfs文件系统

    3 sysfs文件系统 sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用.该文件系统的目录层次结构严格按照内核的数据结构组织.除了二进制文件外(只有特殊场合才使用 ...

  4. activemq安装运行及其在springboot中的queue和topic使用

    安装activemq 运行 springboot使用 依赖 配置 Producer Consumer ComsumerTopic 使用 安装activemq http://activemq.apach ...

  5. pandas层级索引1

    层级索引(hierarchical indexing) 下面创建一个Series, 在输入索引Index时,输入了由两个子list组成的list,第一个子list是外层索引,第二个list是内层索引. ...

  6. 软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON

    全局变量 由于多个html页面,需要引用同一个变量.这个时候,需要定义一个全局变量!如何定义呢? 默认包含了mui的html文件都导入mui.js文件.那么将变量写在mui.js中,就可以实现所有页面 ...

  7. 关于datatable对象的用法

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...

  8. ___pInvalidArgHandler already defined in LIBCMTD.lib(invarg.obj)

    vs2013编译项目时出错,网上很多的解决方案全都是垃圾,根本不能用 不过也有不是垃圾的,就是下面这个: 关于采用静态链接编译生成EXE库函数重复定义问题 看了好多关于类似LIBCMT.lib(inv ...

  9. angular与avalon对复杂对象的修改

    angular的实现 <!doctype html> <html ng-app> <head> <script src="http://files. ...

  10. 10-编译PHP并与nginx整合

    nginx的URL重写.nginx+PHP的配置也是不可不学的部分.PHP自己手动编译,mysql就自己yum了. yum install 安装mysql 同时进行php的编译,手动编译php 这么多 ...