关于 ASP.NET 的 CompilationMode="Never" 性能问题

  今天在优化系统性的时候,想到了 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 快速开发平台
一个开放源代码的快速开发平台

时间: 2024-10-03 23:02:58

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

充分利用ASP.NET缓存提高站点性能

[简介] ASP.NET提供三种主要形式的缓存:页面级输出缓存.用户控件级输出缓存(或称为片段缓存)和缓存API.输出缓存和片段缓存的优点是非常易于实现,在大多数情况下,使用这两种缓存就足够了.而缓存API则提供了额外的灵活性(实际上是相当大的灵活性),可用于在应用程序的每一层利用缓存.本文全面介绍了这三种缓存技术在系统各层中的应用. 在ASP.NET提供的许多特性中,缓存支持无疑是我最欣赏的特性,我这样说当然是有充分理由的.相比ASP.NET的所有其他特性,缓存对应用程序的性能具有最大的潜在影

OutputCache缓存优化asp.net代码 提高网页性能

对于asp.net编写的网页来说,使用缓存是一种非常重要也是很常用的优化技术,它可以大大减轻服务器的负载压力,优化这些网页的性能,在网与使用 .NET Framework 的任何其他功能相比,适当地使用缓存可以更好地提高站点的性能.同时,在网页加速显示上也起了很大的作用. OutputCache以声明的方式控制 ASP.NET 页或页中包含的用户控件的输出缓存策略. 语法: <%@ OutputCache Duration="#ofseconds"   Location=&quo

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

文章来源:http://www.cnblogs.com/dingjie08/archive/2009/11/10/1599929.html 前言    最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来一起交流一下.如果本文中有您觉的错误的,或者不明白的,请加QQ群:4656272,欢迎指正和一起探讨.(ps:鄙人文笔很差,看官请多担待) 背景    朋友的平台网站属于垂直型的资讯社区网站,原先是用ASP.NET 1.0开发的,后来升级到ASP.NET 2.0,数据库为SQL SERVE

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

转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来一起交流一下.如果本文中有您觉的错误的,或者不明白的,请加QQ群:4656272,欢迎指正和一起探讨.(ps:鄙人文笔很差,看官请多担待) 背景朋友的平台网站属于垂直型的资讯社区网站,原先是用ASP.NET 1.0开发的,后来升级到ASP.NET 2.0,数据库为SQL SERVER 2000,操作

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

系统类  Type类,Object类,String类, Arrary类,Console类, Exception类,GC类, MarshalByRefObject类, Math类. DateTime结构,Guid 结构, ICloneable接口,IComparable接口,IConvertible接口, IDisposable类, 集合类      ICollection接口,IComparer接口,IDictionary接口.IDictionaryEnumerator接口 ,IEnumerab

MiniProfiler监控Asp.Net MVC5和EF性能

1. 安装依赖包 在web项目打开nuget包管理器搜索 MiniProfiler.Mvc5和MiniProfiler.EF6安装. 2. 在Global.asax中添加配置代码 protected void Application_Start() { MiniProfiler.Configure(new MiniProfilerOptions { // Sets up the route to use for MiniProfiler resources: // Here, ~/profile

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

ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web API 性能的技术. 1) 使用最快的 JSON 序列化工具 JSON 的序列化对整个 ASP.NET Web API 的性能有着关键性的影响. 在我的一个项目里,我从 JSON.NET 序列化工具转到了 ServiceStack.Text 有一年半了. 我测量过,Web API 的性能提升了20

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

JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入自定义的MediaTypeFormatter(媒体格式化器), 说白了就是根据HTTP content-type application/json 来判断采用哪种媒体格式化器 具体实现,记得要引入Jil包 public class JilFormatter : MediaTypeFormatter { private readonly Options _jilOpti

ASP.NET 性能优化

一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,这是