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策略来提高性能
查看全文
相关阅读:
PHP 多个文件上传
Java实现蓝桥杯有歧义的号码
Java实现蓝桥杯有歧义的号码
Java实现蓝桥杯有歧义的号码
Java实现蓝桥杯互补二元组
Java实现蓝桥杯互补二元组
Java实现蓝桥杯互补二元组
Java实现蓝桥杯快乐数
Java实现蓝桥杯快乐数
Java实现蓝桥杯快乐数
原文地址:https://www.cnblogs.com/kokoliu/p/734585.html
最新文章
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 2
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
[AngularJS + cryptoJS + Gravatar] Provider vs factory
[Bootstrap] 5. Button and well
[Bootstrap] 4. Typogrphy
[Javascript + lodash] sortBy and sortedIndex
[Javascript] Webpack Loaders, Source Maps, and ES6
[Javascript] Introduce to Webpack
[Bootstrap] 3. Responsive Gridding (.hidden-sm, visible-md)
Runoob-Java-Maven:Maven IntelliJ
热门文章
Runoob-Java-Maven:Maven NetBeans
Runoob-Java-Maven:Maven Eclipse
Runoob-Java-Maven:Maven Web 应用
Runoob-Java-Maven:Maven 自动化部署
Runoob-Java-Maven:Maven 依赖管理
Runoob-Java-Maven:Maven 自动化构建
Runoob-Java-Maven:Maven 快照(SNAPSHOT)
Runoob-Java-Maven:Maven 项目文档
Runoob-Java-Maven:Maven 项目模板
oracle-sql内置函数
Copyright © 2011-2022 走看看