示例#1
0
        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);
        }
示例#2
0
        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"));
        }