Пример #1
0
        public static void Main(string[] args)
        {
            var config = new ShortRunWithMemoryDiagnoserConfig();

            Console.WriteLine(@"Choose an image resizing benchmarks:

0. Just run ""Load, Resize, Save"" once, don't benchmark
1. Resize
2. Load, resize, save
3. Load, resize, save in parallel

");
            switch (Console.ReadKey().Key)
            {
            case ConsoleKey.D0:
                try
                {
                    var lrs = new LoadResizeSave();
                    lrs.SystemDrawingBenchmark();
                    lrs.ImageSharpBenchmark();
                    if (RuntimeInformation.OSArchitecture is Architecture.X86 or Architecture.X64)
                    {
                        lrs.MagickBenchmark();
                    }
                    lrs.FreeImageBenchmark();
                    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                    {
                        lrs.MagicScalerBenchmark();
                    }
                    lrs.SkiaBitmapBenchmark();
                    lrs.SkiaCanvasBenchmark();
                    lrs.NetVipsBenchmark();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
                break;

            case ConsoleKey.D1:
                BenchmarkRunner.Run <Resize>(config);
                break;

            case ConsoleKey.D2:
                BenchmarkRunner.Run <LoadResizeSave>(config);
                break;

            case ConsoleKey.D3:
                // Only run the *Parallel benchmarks
                BenchmarkRunner.Run <LoadResizeSaveParallel>(config
                                                             .AddFilter(new NameFilter(name => name.EndsWith("Parallel"))));
                break;

            default:
                Console.WriteLine("Unrecognized command.");
                break;
            }
        }