没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
全文可编辑 word 文档 页眉与背景水印可删除
1
ASP.NET 比较常用的 26 个性能优化技巧
本篇文章主要介绍了"ASP.NET 中常用的 26 个优化性能
方法",主要涉及到 ASP.NET 中常用的 26 个优化性能方法方
面的内容,对于 ASP.NET 中常用的 26 个优化性能方法感兴
趣的同学可以参考一下。
现在很多客户也慢慢开始注重网站的性能了,同时有
很多运营网站的公司也不像以前那样特别在意网站是否非
常漂亮,而把更多的精力放在了网站性能优化上面,提供更
快更稳定的浏览速度,在这个基础上面进行网站功能上的扩
充和完善,那么在 asp.net 中如何优化性能呢?
1. 数据库访问性能优化
数据库的连接和关闭
访问数据库资源需要创建连接、打开连接和关闭连接几
个操作。这些过程需要多次与数据库交换信息以通过身份验
证 , 比 较 耗 费 服 务 器 资 源 。 ASP.NET 中 提 供 了 连 接 池
(Connection Pool)改善打开和关闭数据库对性能的影响。系
统将用户的数据库连接放在连接池中,需要时取出,关闭时
收回连接,等待下一次的连接请求。连接池的大小是有限的,
如果在连接池达到最大限度后仍要求创建连接,必然大大影
全文可编辑 word 文档 页眉与背景水印可删除
2
响性能。因此,在建立数据库连接后只有在真正需要操作时
才打开连接,使用完毕后马上关闭,从而尽量减少数据库连
接打开的时间,避免出现超出连接限制的情况。
使用存储过程
存储过程是存储在服务器上的一组预编译的 SQL 语句,
类似于 DOS 系统中的批处理文件。存储过程具有对数据库立
即访问的功能,信息处理极为迅速。使用存储过程可以避免
对命令的多次编译,在执行一次后其执行规划就驻留在高速
缓存中,以后需要时只需直接调用缓存中的二进制代码即可。
另外,存储过程在服务器端运行,独立于 ASP.NET 程序,便
于修改,最重要的是它可以减少数据库操作语句在网络中的
传输。
优化查询语句
ASP.NET 中 ADO 连接消耗的资源相当大,SQL 语句运行
的时间越长,占用系统资源的时间也越长。因此,尽量使用
优化过的 SQL 语句以减少执行时间。比如,不在查询语句中
包含子查询语句,充分利用索引等。
2. 字符串操作性能优化
使用值类型的 ToString 方法
全文可编辑 word 文档 页眉与背景水印可删除
3
在连接字符串时,经常使用"+"号直接将数字添加到字
符串中。这种方法虽然简单,也可以得到正确结果,但是由
于涉及到不同的数据类型,数字需要通过装箱操作转化为引
用类型才可以添加到字符串中。但是装箱操作对性能影响较
大,因为在进行这类处理时,将在托管堆中分配一个新的对
象 , 原 有 的 值 复 制 到 新 创 建 的 对 象 中 。 使 用 值 类 型 的
ToString 方法可以避免装箱操作,从而提高应用程序性能。
运用 StringBuilder 类
String 类对象是不可改变的,对于 String 对象的重新
赋值在本质上是重新创建了一个 String 对象并将新值赋予
该对象,其方法 ToString 对性能的提高并非很显著。在处
理字符串时,最好使用 StringBuilder 类,其.NET 命名空间
是 System.Text 。 该 类 并 非 创 建 新 的 对 象 , 而 是 通 过
Append,Remove,Insert 等方法直接对字符串进行操作,通
过 ToString 方法返回操作结果。
其定义及操作语句如下所示:
int num;
System.Text.StringBuilder str = new
System.Text.StringBuilder(); //创建字符串
str.Append(num.ToString()); //添加数值 num
Response.Write(str.ToString); //显示操作结果
全文可编辑 word 文档 页眉与背景水印可删除
4
3. 优化 Web 服务器计算机和特定应用程序的配置文件
以符合您的特定需要
默认情况下,ASP.NET 配置被设置成启用最广泛的功能
并尽量适应最常见的方案。因此,应用程序开发人员可以根
据应用程序所使用的功能,优化和更改其中的某些配置,以
提高应用程序的性能。下面的列表是您应该考虑的一些选项。
仅对需要的应用程序启用身份验证。
默认情况下,身份验证模式为 Windows,或集成 NTLM。
大多数情况下,对于需要身份验证的应用程序,最好在
Machine.config 文件中禁用身份验证,并在 Web.config 文
件中启用身份验证。根据适当的请求和响应编码设置来配置
应用程序。ASP.NET 默认编码格式为 UTF-8。如果您的应用
程序为严格的 ASCII,请配置应用程序使用 ASCII 以获得稍
许的性能提高。
考虑对应用程序禁用 AutoEventWireup。
在 Machine.config 文件中将 AutoEventWireup 属性设
置为 false,意味着页面不将方法名与事件进行匹配和将两
者挂钩(例如 Page_Load)。如果页面开发人员要使用这些事
件,需要在基类中重写这些方法(例如,需要为页面加载事
件重写 Page.OnLoad,而不是使用 Page_Load 方法)。如果
禁用 AutoEventWireup,页面将通过将事件连接留给页面作
全文可编辑 word 文档 页眉与背景水印可删除
5
者而不是自动执行它,获得稍许的性能提升。
从请求处理管线中移除不用的模块。
默认情况下,服务器计算机的 Machine.config 文件中
节点的所有功能均保留为激活。根据应用程序所使用的功能,
您可以从请求管线中移除不用的模块以获得稍许的性能提
升。检查每个模块及其功能,并按您的需要自定义它。例如,
如果您在应用程序中不使用会话状态和输出缓存,则可以从
列表中移除它们,以便请求在不执行其他有意义的处理时,
不必执行每个模块的进入和离开代码。
4. 一定要禁用调试模式
在部署生产应用程序或进行任何性能测量之前,始终记
住禁用调试模式。如果启用了调试模式,应用程序的性能可
能受到非常大的影响。
5. 对于广泛依赖外部资源的应用程序,请考虑在多处理
器计算机上启用网络园艺
ASP.NET 进程模型帮助启用多处理器计算机上的可缩放
性,将工作分发给多个进程(每个 CPU 一个),并且每个进程
都将处理器关系设置为其 CPU。此技术称为网络园艺。如果
应用程序使用较慢的数据库服务器或调用具有外部依赖项
的 COM 对象(这里只是提及两种可能性),则为您的应用程序
启用网络园艺是有益的。但是,在决定启用网络园艺之前,
您应该测试应用程序在网络园中的执行情况。
剩余21页未读,继续阅读
资源评论
mmoo_python
- 粉丝: 0
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- U8Cloud常见开发的示例
- AT32与Sxx32/Gx32替换对照表
- STM32VET6单片机+XC3S250E(FPGA)+AD9708 DDS信号发生器MCU+FPGA源码+PDF硬件设计原理图
- SCIPOptSuite-9.0.0-win64-VS15.exe
- GIS10.4补丁文件
- fdgsfdgfdsgsf
- 基于CodeMirror5实现的mybatis+sql提示扩展功能,主要是用于在线设计开发场景中的动态sql部分.zip
- 计算机毕业设计-aSP.NET某中学学生成绩管理系统的设计(源代码+)-毕设源码实例.zip
- springboot集成mybatis动态sql.zip
- mybatis中的动态sql, 涉及 where trim set if foreach等
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功