static void Main(string[] args) { Random random = new Random(); CustomTimer timer = new CustomTimer(); Console.WriteLine("ICacheManager<int, int>"); for (int j = 0; j < 10; ++j) { ICacheManager<int, int> cacheManager = new CacheManager<int, int>(); timer.Start(); // No concurrency insertions for (int i = 0; i < 1000000; ++i) { cacheManager.AddEntry(random.Next(int.MaxValue), i); } timer.StopAndReport(); GC.Collect(2); GC.WaitForFullGCComplete(); } Console.WriteLine(""); Console.WriteLine("ICacheManager<int, string>"); for (int j = 0; j < 10; ++j) { ICacheManager<int, string> cacheManager = new CacheManager<int, string>(); timer.Start(); // No concurrency insertions for (int i = 0; i < 1000000; ++i) { cacheManager.AddEntry(random.Next(int.MaxValue), "dummy string " + i); } timer.StopAndReport(); GC.Collect(2); GC.WaitForFullGCComplete(); } Console.WriteLine(""); Console.WriteLine("ICacheManager<int, string, int>"); for (int j = 0; j < 10; ++j) { ICacheManager<int, string, int> cacheManager = new CacheManager<int, string, int>(); timer.Start(); // No concurrency insertions for (int i = 0; i < 1000000; ++i) { cacheManager.AddEntry(random.Next(int.MaxValue), "dummy string " + i); } timer.StopAndReport(); GC.Collect(2); GC.WaitForFullGCComplete(); } Console.WriteLine(""); Console.ReadLine(); }