惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
Y
Y Combinator Blog
博客园_首页
Martin Fowler
Martin Fowler
博客园 - 司徒正美
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
B
Blog
有赞技术团队
有赞技术团队
A
About on SuperTechFans
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI

博客园 - choice

用Adobe Flex3开发AIR应用程序–入门指南 dhtml笔记-body对象 PureMVC 相关 flash与后台数据交换方法整理4-XMLSocket篇-转载 mssql随即取数据库中的数据 Flex范例下载地址 如何更改IE查看源代码的默认打开的编辑,比如EditPlus 2、UltraEdit等 Macromedia Flex 教程: Flex入门 (1) nvarchar与varchar的区别 C# 中 for和foreach 性能比较,提高编程性能 C# FAQ: const和static readonly有什么区别? Asp.Net缓存Cache使用 - choice - 博客园 asp.net程序性能优化的七个方面 (转) Flex相关 Flex2 & Flex3资料大全 FreeTextBox使用详解 (版本3.1.1) (转) GridView 几种使用方法(转) JS脚本defer的作用 - choice - 博客园 xp设置文件夹权限
C#开发网站如何提高性能 - choice - 博客园
choice · 2007-12-15 · via 博客园 - choice

性能提高的技巧

避免不必要的执行操作


 
关闭不必要的Session状态
<%@ Page EnableSessionState="false" %>
注意使用Server Control
不必要时可以不使用Server Control
不必要时可以关闭ViewState
<asp:datagrid EnableViewState="false“ runat="server"/>
<%@ Page EnableViewState="false" %>
不要用Exception控制程序流程
try {
 result = 100 / num;
}
 catch (Exception e) {
 result = 0;
 }
 if (num != 0)
 result = 100 / num;
 else
  result = 0; 
禁用VB和JScript动态数据类型
<%@ Page Language="VB" Strict="true" %>
使用存储过程数据访问
只读数据访问不要使用DataSet
使用SqlDataReader代替DataSet
SqlDataReader是read-only, forward-only
关闭ASP.NET的Debug模式
使用ASP.NET Output Cache缓冲数据
页面缓冲
<
%@OutputCache%>
Duration
VaryByParam
片断缓冲
VaryByControl
数据缓冲
过期依赖条件
Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));
Cache.Insert("MyData", Source, null,DateTime.Now.AddHours(1), TimeSpan.Zero);
Cache.Insert("MyData", Source, null, DateTime.Maxvalue,TimeSpan.FromMinutes(20));
存储过程,那就不用说了
页面最好静态的
全局缓存要做好 
别太多的包含文件
能用JS实现的效果都用JS实现
能在客户端实现的就用
分页使用好的存储过程,其他的也尽量使用存储过程
少用些耗费资源的控件,减少回发
记得销毁数据库连接
不要把所有内容都放在大表格中 而是尽量以横向分段,一段为一个表格
能用html的就不要用aspx了
能用javascript就不要用cs了
datagrid能不用就不用
session、viewstate、Server Control能不用就关
存储过程、缓存会用就用,不会就学
只读数据使用datareader,很多的数据库操作使用存储过程,
使用<
%@outputcache Duration=60 VaryByParam="*"%>进行缓存
关闭debug模式
正确使用索引
if (!Page.IsPostBack)进行绑定不需要回传的代码
图片不要太精确
主页数据查询比较多但更新不常用的可以使用aspx动态生成html页面
控件不需要经常编程的 比如输入控件等都使用HTML控件
使用Squid缓存技术


大型门户网站asp.net实现的注意事项
 

1. 不要用服务器端控件
2. 全面禁用asp.net的一些页面级新特性
3. web.config里的debug要为false,并且dll文件编译是要生成为release版本的
4. 尽量不要用dataset。除非用到嵌套循环
5. 运行在win2003企业版上。
6. 用sqlclient或oracleclient访问数据库
这些是asp.net开发大型网站必须要重视的几点,其它一些就是静态页面啊和硬件上的一些问题,这些跟其它大型网站诸如此类


补充:

1、转向用Server.Transfer,不用Response.Direct
2、ADO对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放ADO对象
3、数据集采用要多少给多少,杜绝不分字段不分页