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策略来提高性能
查看全文
相关阅读:
表单重复提交问题
Win8.1卸载64位Oracle Database 11g的详细图文步骤记录
A1084. Broken Keyboard (20)
A1088. Rational Arithmetic (20)
A1089. Insert or Merge (25)
A1034. Head of a Gang (30)
A1013. Battle Over Cities (25)
A1030. Travel Plan (30)
A1003. Emergency (25)
A1076. Forwards on Weibo (30)
原文地址:https://www.cnblogs.com/kokoliu/p/734585.html
最新文章
oracle 修改列信息
java 获取桌面存储路径
java的properties文件,输入中文显示ascii
Spring mvc 特殊字段的注入
Oracle_synonyms (同义词)
jdk 安装及环境变量配置
C++ STL 之 容器
KMP模式匹配算法
SqlServer 动态行转列PIVOT、EXEC,for xml Path
java懒汉式单例遇到多线程
热门文章
Web端本地存储
Bootstrap
百度地图 >> 自定义控件
Javascript继承实现
ASCII,GB2312,GBK,Unicode,Utf-8
RSA前台js加密,后台C#解密
来自JavaScript Garden摘取
读书笔记
spring mvc
response
Copyright © 2011-2022 走看看