.Net Framework 1.1 doesn’t have cool System.Diagnostic.Stopwatch class to measure performance.
So, i write my own performance measure util for .Net Framework 1.1
PerformanceTimer:
using System;
using System.ComponentModel;
using System.ComponentModel;
using System.Runtime.InteropServices;
namespace Utils
{
public class PerformanceTimer : IDisposable{[DllImport("KERNEL32")]private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);[DllImport("Kernel32.dll")]private static extern bool QueryPerformanceFrequency(out long lpFrequency);private string _description;private long _start;private long _stop;private long _frequency;public PerformanceTimer(string descripton){_description = descripton;Prepare();if (QueryPerformanceFrequency(out _frequency) == false){// Frequency not supportedthrow new Win32Exception();}QueryPerformanceCounter(out _start);}public void Dispose(){QueryPerformanceCounter(out _stop);Console.WriteLine("{0} elapsed {1, 6:###.00} milliseconds", _description, (double)((_stop – _start)* 1000) / (double) _frequency);}private static void Prepare(){GC.Collect();GC.WaitForPendingFinalizers();GC.Collect();}}
}
Example:
public static void Main()
{
using (PerformanceTimer a = new PerformanceTimer("test")){System.Threading.Thread.Sleep(1000);}
}
Results:
test: elapsed 1000,72 milliseconds