C#泛型与非泛型性能比较的实例
程序员文章站
2023-12-13 10:50:52
复制代码 代码如下:using system;using system.collections.generic;using system.linq;using system...
复制代码 代码如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.collections;
namespace consoleapplication
{
class program
{
static int length = 1000 * 1000;
static void main(string[] args)
{
int iteration=10;//方法执行次数
codetimer.time("值类型处理-泛型方法", iteration, test1);
codetimer.time("值类型处理-非泛型方法", iteration, test2);
//codetimer.time("引用类型处理-泛型方法", iteration, test3);
//codetimer.time("引用类型处理-非泛型方法", iteration, test4);
console.readkey();
}
/// <summary>
/// 值类型泛型方法
/// </summary>
static void test1()
{
list<int> l = new list<int>();
for (int i = 0; i < length; i++)
{
l.add(i);
int a = l[i];
}
l = null;
}
/// <summary>
/// 值类型非泛型方法
/// </summary>
static void test2()
{
arraylist a = new arraylist();
for (int i = 0; i < length; i++)
{
a.add(i);
int s = (int)a[i];
}
a = null;
}
/// <summary>
/// 引用类型泛型方法
/// </summary>
static void test3()
{
list<string> l = new list<string>();
for (int i = 0; i < length; i++)
{
l.add("l");
string s = l[i];
}
}
/// <summary>
/// 引用类型的非泛型方法
/// </summary>
static void test4()
{
arraylist a = new arraylist();
for(int i=0;i<length;i++)
{
a.add("a");
string s = (string)a[i];
}
a = null;
}
}
}
值类型的泛型与非泛型的性能比较,方法执行10次,由此可见 使用泛型要比非泛型的效率高很多。