源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET页面优化 性能提升8倍的方法

  • 时间:2021-06-10 14:53 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET页面优化 性能提升8倍的方法
为了让您对优化的效果有个直观的了解,我准备了下面的测试结果截图: [img]http://files.jb51.net/upload/201203/20120311221450251.png[/img] 测试环境: 1. Windows Server 2003 SP2 2. Viaual Studio 2008,使用自带的WebDev.WebServer.EXE运行网站程序。 3. (ThinkPad SL510):Core2 T6670 2.2GHz, 4G内存 二个红框中的数字反映了优化前后的执行时间。 数字表明:优化前后,执行时间有了8倍多的差别。 [b]测试背景 [/b] 看过了优化结果,再来介绍一下:这个测试到底是在测试什么东西? 现在有很多做ASP.NET的开发人员,应该都是从ASP.NET的WebForm编程模型开始学习的。大家都很喜欢用服务器控件,不管输出什么,都会使用服务器控件。有时候为了让页面呈现干净的HTML代码,有些人会选择使用Repeater,Literal这类简单的服务器控件。或许有些人认为:我已不使用GridView这样强大复杂的控件,页面执行速度已经很快了。 真是这样吗? 今天测试的起点就从使用简单的服务器开始,我会分二次对它做一系列的性能优化。 最终就是上图中的3个结果,它们反映了二次优化的改进过程。 在继续介绍之前,有一点我想有必要说明一下: 优化的过程涉及到ASP.NET服务器控件的使用,测试结果也仅仅只是一个参考数字。 如果您认为您的开发工作非常依赖于服务器控件的使用, 那么测试结果对您来说其实是无意义的,请不要在意这个结果。 [b]测试方法 [/b]在这次优化过程中,我并没有设计很复杂的测试页面,而是一个很简单的测试页面,页面显示效果如下: [img]http://files.jb51.net/upload/201203/20120311221453924.png[/img] 这个页面其实就是显示了一堆超链接,它们来自于我的博客侧边栏的【推荐排行榜】,总共有20条记录,我让页面重复5次输出,也就是生成了100个超链接。 测试的数据是这样获取的: 我复制了我的博客侧边栏的【推荐排行榜】的那段HTML代码,保存到一个文件中: [img]http://files.jb51.net/upload/201203/20120311221453670.png[/img] 然后,网站在初始化时,从这段HTML代码提取链接地址以及显示文字,保存到一个BlogInfo的列表中,代码如下:
[url=<%= b.Href %>]<% } %> <hr /> <% foreach( BlogInfo b in XmlDb.Blogs ) { %> <a href="<%= b.Href %>" target="_blank"><%= b.Title %></a><br /> <% } %> <hr /> <% foreach( BlogInfo b in XmlDb.Blogs ) { %> <a href="<%= b.Href %>" target="_blank"><%= b.Title %></a><br /> <% } %> <hr /> <% foreach( BlogInfo b in XmlDb.Blogs ) { %> <a href="<%= b.Href %>" target="_blank"><%= b.Title %></a><br /> <% } %> <hr /> <% foreach( BlogInfo b in XmlDb.Blogs ) { %> <a href="<%= b.Href %>" target="_blank"><%= b.Title %></a><br /> <% } %> <hr /> </body> </html>
测试代码: 当我测试执行10000次时,耗时:00:00:01.2345842 回到顶部 分析优化结果1 测试用例1执行相同次数所花费的时间是测试用例2的6倍,为什么会这样呢? 为了回答这个问题,我们首先要知道前面二个页面在执行时,它们是如何运行的。 说到这里,就不得不谈ASP.NET的页面编译方式了。 ASP.NET的页面编译过程是个复杂的操作,其实我们可以不用关心页面是如何编译的, 但要知道:页面编译后是什么样的。 为了能直观地了解页面编译后的样子,我编译了整个网站,并生成到一个DLL文件中,然后使用Reflector.exe来分析这个DLL的源代码。 将网站编译成一个DLL文件有二个方法: 1. 安装WebDeployment插件。 2. 使用我的工具:FishAspnetTool 本文将使用FishAspnetTool来编译测试网站获得编译后的DLL文件。 FishAspnetTool是什么? FishAspnetTool是我在使用Visual Web Developer 2005时,为了方便编译网站而写的一个小工具。 下载地址:[url=http://www.1sucai.cn/article/29875.htm]http://www.1sucai.cn/article/29875.htm[/url] 注意:下载的是一个工具包,安装后,从开始菜单中运行FishTools\FishAspnetTool即可。 下面是工具的运行截图。 [img]http://files.jb51.net/upload/201203/20120311221453491.png[/img] 操作方法: 1. 点击粉色按钮,选择网站路径。 2. 单选按钮选择第2项。 3. 点击【发布网站】按钮。 在编译网站之后,我就可以知道网站在运行时如何运行页面了。 测试用例1的页面,最后被编译成这样了:
[url=http://xiazai.jb51.net/201203/yuanma/PagePerformanceTest.cab.7z]点击此处下载示例代码[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部