using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace ConsoleApplication1 { //非泛型类 public class RegularStack { private object[] frames; private int pointer = 0; public RegularStack(int size) { this.frames = new object[size]; } //进栈 public void Push(object frame) { this.frames[pointer++] = frame; } //出栈 public object Pop() { return this.frames[--pointer]; } } //泛型类 public class GenericStack<T> { private T[] frames; private int pointer = 0; public GenericStack(int size) { this.frames = new T[size]; } //进栈 public void Push(T frame) { this.frames[pointer++] = frame; } //出栈 public object Pop() { return this.frames[--pointer]; } } public class Rectangle { public static void Main() { int iterations = 10000000; //循环次数 //RegularStack s = new RegularStack(iterations); //执行非泛型 GenericStack<int> s = new GenericStack<int>(iterations); //执行泛型 DateTime start = DateTime.Now; //开始时间 for (int i = 0; i < iterations; i++) s.Push(i); //进栈 for (int i = 0; i < iterations; i++) s.Pop(); //出栈 float ticks = DateTime.Now.Ticks - start.Ticks; float duration = ticks / TimeSpan.TicksPerSecond; //花费时间 Console.WriteLine("Duration = " + string.Format("{0:#0.0000}", duration)); } }} // int iterations = 100000; // 循环次数 // 执行非泛型花费时间: 0.0156 // 执行泛型花费时间: 0.0000 // int iterations = 1000000; // 循环次数 // 执行非泛型花费时间: 0.0938 // 执行泛型花费时间: 0.0313 // int iterations = 10000000; // 循环次数 // 执行非泛型花费时间: 2.7183 // 执行泛型花费时间: 0.4063