网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.Net常用功能整理--生成图片的.
.简述.Net下的应用程序授权实战步.
.Asp.net &C#开发中的一些注意事项.
.关于ASP.NET在IIS一些问题的经验.
.ASP.NET 2.0 多文件上传小经验 .
.ASP.NET2.0瞎记-加密链接字符串.
.ASP.NET如何进行性能优化问题.
.datagrid与DataSet结合使用中出现.
.关于OpenSmtp邮件标题过长后出现.
.ASP.NET小技巧:重写ViewState的存.
.ASP.NET2.0中themes、Skins轻松实.
.ASP.NET上传图片时,产生预览.
.ASP.NET的 Session 详解.
.用gridview显示来自excel表格里的.
.数据回发时,维护ASP.NET Tree控.
.ASP.NET中在线用户统计的简单实现.
.在ASP.Net中应用Javascript.
.Asp.net下的对象成员数据绑定器实.
.如何实现ASP.NET网站个性化?.
.得到内网可用的SqlServer 及某数.

通过改善架构来提高 ASP.Net 应用程序的性能

发表日期:2006-5-16


   有的时候我们的 Web 应用程序在本机测试的时候,速度很快,可放在局域网上测试的时候,却会发现存在性能问题;甚至有时在局域网速度正常的应用,在广域网上还会发现问题。这些问题一般都是应用中的疏忽或错误,并不涉及到系统架构,通过真实环境的调试和测试都能找到问题所在并解决。
    今天我们所要说的是通过改善架构来从根本上提高 ASP.Net 应用程序的性能。
    我们先来对 ASP.Net 的几个简单的应用做一下测试。
    测试环境:AthlonXP 3200+,DDR400 512M,WindowsXP SP2,本机的SQL Server 2000,中文 Northwind 数据库(从Access导入)的产品表,约70条记录。

测试序号 程序类型 测试方法 测试结果
(每秒请求数)
SQLServer
所占用资源
ASP.Net
所占用资源
1 Web服务 用产品表填充DataSet,并返回记录数 250次 100% -
2 Web服务 用产品表填充DataSet,并返回 DataSet 138次 54% 46%
3 Web应用程序 用产品表填充DataSet,并绑定 DataGrid 70次 28% 72%
说明:不同系统的测试结果可能不同,但测试结果的相对比例应该差别不大。

    在第一个测试里,Web 服务只是从数据库读取记录填充到 DataSet,并返回记录数(注意不是返回记录),所占用的系统资源很少,假设系统资源完全被SQLServer 占用,并且对结论不会有负面影响。
    在第二个测试中,Web 服务将 DataSet 返回,每秒请求数就降低了几乎一半, 这一半的系统资源,被ASP.Net 用于将 DataSet 序列化。
    在第三个测试中,Web 应用程序将 DataSet 绑定到 DataGrid,并返回页面,每秒请求数几乎降低了四分之三,这些系统资源被 ASP.Net 用于将 DataSet 绑定到 DataGrid,并将页面序列化。

    从以上测试中我们可以看到,DataGrid 的绑定和序列化会占用大量的系统资源,如果要提高系统性能,需要通过改善架构来实现。

    一、将对数据库的操作,从页面中分离出来,放到独立的持久层。
    这样在客户端通过 DOM 或 XSLT 将数据展现为表格,来代替服务器端 DataGrid 的绑定工作,大大减轻了服务器的压力。并且客户端通过 AJAX 从持久层获取数据,会提高用户的使用体验。
    二、将页面从数据中彻底独立出来,以便利用缓存。
    有的应用了 AJAX 的页面还是会读取初始数据,这样的话页面就不能缓存。这些页面一般比较复杂,会比普通页面占有更多的资源,如果能够利用缓存,将进一步提高系统的性能。

    通过以上两点,ASP.Net 的性能,几乎能够提高一倍。

    您可以自己作一下测试,或者访问我们的示例 www.BizStruct.cn

上一篇:把WebForm数据导出到Excel中 人气:7532
下一篇:File.Delete不能删除文件的问题 人气:9904
浏览全部ASP.Net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐