Example #1
0
        static void Main(string[] args)
        {
            string data;

            using (var sr = new StreamReader(@"Sample.json"))
            {
                data = sr.ReadToEnd();
            }
            //data = "test";
            var logger = new AppLogger();


            var executor = new RedisExecutor(logger);

            int.TryParse(ConfigurationManager.AppSettings["threadsNumber"], out int threadsNumber);
            int.TryParse(ConfigurationManager.AppSettings["operationsNumber"], out int operationsNumber);
            int.TryParse(ConfigurationManager.AppSettings["secondsNumber"], out int secondsToRun);

            int[] tasks = Enumerable.Range(1, threadsNumber).ToArray();

            logger.Info($"Starting with {threadsNumber} threads and {operationsNumber} operations.");
            var timeUp = TimeSpan.FromSeconds(secondsToRun);

            RedisCacheW.Instance.RedisCache.Get("asasjakjsa");

            Parallel.ForEach(tasks, t => {
                var watcher = new Stopwatch();
                watcher.Start();
                do
                {
                    Task.Factory
                    .StartNew(() =>
                    {
                        executor.ExecuteInsertsAndReads(data, operationsNumber);
                    })
                    .Wait();
                    Console.Clear();
                    Console.WriteLine($"Elapsed: {watcher.Elapsed} of {timeUp}");
                }while (watcher.Elapsed < timeUp);
            });


            Console.WriteLine("Press any key...");
            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            string data;

            using (var sr = new StreamReader(@"D:\Work Related\Redis Stress Test\Redis-Stress-Test\StressTest.App\Sample.json"))
            {
                data = sr.ReadToEnd();
            }

            var logger = new AppLogger();


            var executor = new RedisExecutor(logger);

            int.TryParse(ConfigurationManager.AppSettings["threadsNumber"], out int threadsNumber);
            int.TryParse(ConfigurationManager.AppSettings["operationsNumber"], out int operationsNumber);
            int.TryParse(ConfigurationManager.AppSettings["secondsNumber"], out int secondsToRun);

            Task[] tasks = new Task[threadsNumber];
            executor.InitializeKeys(threadsNumber, operationsNumber);


            logger.Info($"Starting with {threadsNumber} threads and {operationsNumber} operations.");

            var watcher = new Stopwatch();

            watcher.Start();
            do
            {
                //insert data
                for (int index = 0; index < threadsNumber; index += 1)
                {
                    try
                    {
                        tasks[index] =
                            Task.Factory.StartNew(() =>
                                                  executor.ExecuteInserts(executor.InitializeKeys(threadsNumber, operationsNumber), data, operationsNumber));
                    }
                    catch (Exception e)
                    {
                        logger.Error(e);
                        throw;
                    }
                }
                //get data
                for (int index = 0; index < threadsNumber; index += 1)
                {
                    try
                    {
                        tasks[index] =
                            Task.Factory.StartNew(() =>
                                                  executor.ExecuteReads(executor.InitializeKeys(threadsNumber, operationsNumber), operationsNumber));
                    }
                    catch (Exception e)
                    {
                        logger.Error(e);
                        throw;
                    }
                }
                //delete data
                for (int index = 0; index < threadsNumber; index += 1)
                {
                    try
                    {
                        tasks[index] =
                            Task.Factory.StartNew(() =>
                                                  executor.ExecuteDeletes(executor.InitializeKeys(threadsNumber, operationsNumber), operationsNumber));
                    }
                    catch (Exception e)
                    {
                        logger.Error(e);
                        throw;
                    }
                }
            }while (watcher.Elapsed < TimeSpan.FromSeconds(secondsToRun));



            Console.ReadLine();
        }