昨天看到微软的一编锁定静态类的文章,里面说到静态方法的速度是很慢的,所以特地写了个测试来看看到底有多慢,下面是测试代码,结果,是大家循环1000000000次,静态方法1550,动态方法是1553,动态方法反而还慢,真搞不明白,微软说的速度很慢是什么意思。如果我再加上构造函数,动态方法要25秒多,如果这样测试是合理的话,那我不如在asp.net里全部用静态函数好了。这不是更快?
public class T1
{
public static void Test() {
int i = 1;
i++;
return;
}
}
public class T2
{
public T2()
{
}
public void Test()
{
int i = 1;
i++;
return;
}
}
[TestMethod]
public void StaticTest2()
{
Stopwatch s = new Stopwatch();
s.Start();
for (int i = 0; i < 1000000000; i++)
{
T1.Test();
}
Console.Write(s.ElapsedMilliseconds.ToString() + "\n");
Console.Write(s.ElapsedMilliseconds.ToString() + "\n");
s.Reset();
s.Start();
T2 t = new T2();
for (int i = 0; i < 1000000000; i++)
{
t.Test();
}
Console.Write(s.ElapsedMilliseconds.ToString() + "\n");
}