在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天在优化系统性的时候,想到了 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 快速开发平台
一个开放源代码的快速开发平台 |
请发表评论