泛型與普通方法、Object方法效率比較 簡介: 方法的執行效率比較,首先考慮的就是執行方法時所耗費的時長,時長越短,效率越好,耗時越長,效率越差。下麵就從執行耗時方法考量三種方法的效率。 實現方法: static void Main(string[] args) { Monitor.Show(); ...
泛型與普通方法、Object方法效率比較
簡介:
方法的執行效率比較,首先考慮的就是執行方法時所耗費的時長,時長越短,效率越好,耗時越長,效率越差。下麵就從執行耗時方法考量三種方法的效率。
實現方法:
static void Main(string[] args) { Monitor.Show(); } public static void Show() { Console.WriteLine("****************Monitor******************"); { int iValue = 12345; long commonSecond = 0; long objectSecond = 0; long genericSecond = 0; //普通方法 { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 1000000; i++) { ShowInt(iValue); } watch.Stop(); commonSecond = watch.ElapsedMilliseconds; } //Object { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 1000000; i++) { ShowObject(iValue); } watch.Stop(); objectSecond = watch.ElapsedMilliseconds; } //泛型 { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 1000000; i++) { Show<int>(iValue); } watch.Stop(); genericSecond = watch.ElapsedMilliseconds; } Console.WriteLine("commonSecond={0},objectSecond={1},genericSecond={2}", commonSecond, objectSecond, genericSecond); Console.ReadKey(); } } #region PrivateMethod private static void ShowInt(int iParameter) { //do nothing } private static void ShowObject(object oParameter) { //do nothing } private static void Show<T>(T tParameter) { //do nothing } #endregion
執行結果:
****************Monitor****************** commonSecond=3,objectSecond=9,genericSecond=3
顯然,泛型方法執行效率比較高。