public void CachePerformanceLoadTest2() { Stopwatch watch = new Stopwatch(); var items = ResponseCache.Cache.Get("ItemsDictionary") as EntryDictionary <int, ItemDetailsEntry>; if (items == null) { return; } int count = 0; Console.WriteLine("Time to complete {0} {1}", count, watch.Elapsed.TotalSeconds.ToString("0.0000000")); List <Task <ItemDetailsEntry> > addTask = new List <Task <ItemDetailsEntry> >(); var items2 = new EntryDictionary <int, ItemDetailsEntry>(); List <TimeSpan> times = new List <TimeSpan>(); watch.Start(); foreach (var item in items) { addTask.Add(GwApi.GetItemDetailsAsync(item.Key)); count++; } var time = watch.Elapsed; Task.WaitAll(addTask.ToArray()); foreach (var task in addTask) { items2.Add(task.Result.ItemId, task.Result); } watch.Stop(); string output = string.Format("Time to complete {0} {1} {2}", items2.Count, watch.Elapsed.TotalSeconds.ToString("0.0000000"), time.TotalSeconds.ToString("0.0000000")); Console.WriteLine(output); }
public void CachePerformanceLoadTest1() { Stopwatch watch = new Stopwatch(); var items = ResponseCache.Cache.Get("ItemsDictionary") as EntryDictionary <int, ItemDetailsEntry>; if (items == null) { return; } var addTask = new List <Task <ItemDetailsEntry> >(); var item1 = items[23651]; ResponseCache.Cache.Remove(item1.Url); watch.Start(); for (int i = 0; i < 10; i++) { addTask.Add(GwApi.GetItemDetailsAsync(item1.ItemId)); } var time = watch.Elapsed; Thread.Sleep(1000); ResponseCache.Cache.Remove(item1.Url); //Task.WaitAll(addTask.ToArray()); watch.Restart(); for (int i = 0; i < 10; i++) { addTask.Add(GwApi.GetItemDetailsAsync(item1.ItemId)); } var time1 = watch.Elapsed; //Task.WaitAll(addTask.ToArray()); watch.Restart(); for (int i = 0; i < 10; i++) { addTask.Add(GwApi.GetItemDetailsAsync(item1.ItemId)); } var time2 = watch.Elapsed; Task.WaitAll(addTask.ToArray()); var time3 = watch.Elapsed; watch.Stop(); Console.WriteLine("{0}", time.TotalSeconds.ToString("0.0000000")); Console.WriteLine("{0}", time1.TotalSeconds.ToString("0.0000000")); Console.WriteLine("{0}", time2.TotalSeconds.ToString("0.0000000")); Console.WriteLine("{0}", time3.TotalSeconds.ToString("0.0000000")); }