zoukankan
html css js c++ java
如何最大限度提高.NET的性能
1
)避免使用ArrayList。
因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。.net
2
.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。
2
)使用HashTale代替其他字典集合类型(如StringDictionary,NameValueCollection,HybridCollection),存放少量数据的时候可以使用HashTable.
3
)为字符串容器声明常量,不要直接把字符封装在双引号
"
"
里面。
//
避免
//
MyObject obj
=
new
MyObject();
obj.Status
=
"
ACTIVE
"
;
//
推荐
const
string
C_STATUS
=
"
ACTIVE
"
;
MyObject obj
=
new
MyObject();
obj.Status
=
C_STATUS;
4
) 不要用UpperCase,Lowercase转换字符串进行比较,用String.Compare代替,它可以忽略大小写进行比较.
例:
const
string
C_VALUE
=
"
COMPARE
"
;
if
(String.Compare(sVariable, C_VALUE,
true
)
==
0
)
{
Console.Write(
"
SAME
"
);
}
5
) 用StringBuilder代替使用字符串连接符 “
+
”,.
//
避免
String sXML
=
"
<parent>
"
;
sXML
+=
"
<child>
"
;
sXML
+=
"
Data
"
;
sXML
+=
"
</child>
"
;
sXML
+=
"
</parent>
"
;
//
推荐
StringBuilder sbXML
=
new
StringBuilder();
sbXML.Append(
"
<parent>
"
);
sbXML.Append(
"
<child>
"
);
sbXML.Append(
"
Data
"
);
sbXML.Append(
"
</child>
"
);
sbXML.Append(
"
</parent>
"
);
6
) If you are only reading from the XML
object
, avoid
using
XMLDocumentt, instead use XPathDocument, which
is
readonly
and so improves performance.
如果只是从XML对象读取数据,用只读的XPathDocument代替XMLDocument,可以提高性能
//
避免
XmlDocument xmld
=
new
XmlDocument();
xmld.LoadXml(sXML);
txtName.Text
=
xmld.SelectSingleNode(
"
/packet/child
"
).InnerText;
//
推荐
XPathDocument xmldContext
=
new
XPathDocument(
new
StringReader(oContext.Value));
XPathNavigator xnav
=
xmldContext.CreateNavigator();
XPathNodeIterator xpNodeIter
=
xnav.Select(
"
packet/child
"
);
iCount
=
xpNodeIter.Count;
xpNodeIter
=
xnav.SelectDescendants(XPathNodeType.Element,
false
);
while
(xpNodeIter.MoveNext())
{
sCurrValues
+=
xpNodeIter.Current.Value
+
"
~
"
;
}
7
) 避免在循环体里声明变量,应该在循环体外声明变量,在循环体里初始化。
//
避免
for
(
int
i
=
0
; i
<
10
; i
++
)
{
SomeClass objSC
=
new
SomeClass();
.
.
.
}
//
推荐
SomeClass objSC
=
null
;
for
(
int
i
=
0
; i
<
10
; i
++
)
{
objSC
=
new
SomeClass();
.
.
.
}
8
) 捕获指定的异常,不要使用通用的System.Exception.
//
避免
try
{
<
some logic
>
}
catch
(Exception exc)
{
<
Error handling
>
}
//
推荐
try
{
<
some logic
>
}
catch
(System.NullReferenceException exc)
{
<
Error handling
>
}
catch
(System.ArgumentOutOfRangeException exc)
{
<
Error handling
>
}
catch
(System.InvalidCastException exc)
{
<
Error handling
>
}
9
) 使用Try
catch
finally时, 要在finally里释放占用的资源如连接,文件流等
不然在Catch到错误后占用的资源不能释放。
try
{
}
catch
{
}
finally
{
conntion.close()
}
10
) 避免使用递归调用和嵌套循环,使用他们会严重影响性能,在不得不用的时候才使用。
11
) 使用适当的Caching策略来提高性能
查看全文
相关阅读:
form表单中name和id区别
为什么我做网站开发不使用前端框架
设置GridView表头的背景图片
input文本框隐藏边框
如何在asp.net页面使用css和js
HTML与XHTML的差别
asp.net实现关闭当前网页功能
asp.net判断文件或文件夹是否存在
asp.net自定义错误页面
asp.net中textbox获得焦点后清空默认文本
原文地址:https://www.cnblogs.com/kokoliu/p/734585.html
最新文章
javascript脚本应该写在代码的什么地方?
怎样才能实现表格背景图片拉伸
[转] DataSet的的几种遍历
gridview 显示超链接数据,字体颜色和下划线怎么改
加入验证控件后出现错误提示:WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
GridView中对表头设定背景图片
sql server 数据库中明明有值但是查询怎么都查不到值
marquee标签详解
asp.net中弹出确认窗口(confirm),实现删除确认的功能
WAI-ARIA无障碍网页资料
热门文章
ExecuteNonQuery()返回受影响行数不适用select语句
response.write()弹出提示后页面布局改变的解决办法
总结一下CSS中的定位 Position 属性
【配置】检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。
flowplayer网页视频播放器事例详解--包含各种参数说明(自译)
解决iframe重定向让父级页面跳转
JS 弹出网页 (不显示地址栏,工具栏) 网页去掉地址栏
asp.net中如何退出整个框架(frameset ),回到登录界面?
ASP.NET Button、ImageButton、LinkButton、HyperLink区别
C# 中GUID生成格式的四种格式
Copyright © 2011-2022 走看看