C# 关于程序性能的几个问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 13:16:57
大家帮忙看一下以下几种情况,哪一个性能高,执行效率快些?

1.返回一个类型的数组跟返回该类型的泛型;

2.DataSet, DataTable , DataReader三者比较

3.采用分层架构以后跟未分层的项目哪一个性能好些.

4.string a = ""; 与 string b = string.Empty;
henry_yu 说的很详细
谢谢各位的参与

1.返回一个类型的数组跟返回该类型的泛型
一般来说是泛型的性能要高,因为泛型可以避免类型的装箱与拆箱。但具体的还要看你的怎么使用你的类型的。
2、DataSet, DataTable , DataReader三者比较
DataReader最快,但其提供的功能也是最少的。建议不要太多使用DataSet,因为这东西太大了,最好使用Table.
3.采用分层架构以后跟未分层的项目哪一个性能好些.
将一个项目划分过多的层次对性能而言没有任何好处。但有时候项目的分层是必要的,因为一个项目在设计与制作的时候你不可能仅仅考虑它的性能,你还得考虑它的安全性、扩展性等。为了达到这些软件目标,你就得分层设计。
4string a = ""; 与 string b = string.Empty
string b = string.Empty的性能要高一些。string尽管被当作基元的值类型使用,但其实它是引用类型的,直接赋值为“”会导致一次内存分配。

1.数组(泛型需要可能需要装箱拆箱,对性能损害极大)

2.DataReader

3.小项目未分层性能好

4.没区别

1.返回一个类型的泛型

2.DataReader

3.未分层

4.string b = string.Empty

以上四点都是相对于性能而言比较快的

1.泛型
2.DataReader(只读不写)如果你只要输出数据,DataReader比较好,DataSet(可读可写,自动关闭),如果你要对他们进行操作DataSet比较好.
3.分层架构(条理清晰,调用明白)
4.格式化字符串不能和赋值相提并论

这个网上都有介绍啊