diff --git a/src/benchmarks/micro/MicroBenchmarks.csproj b/src/benchmarks/micro/MicroBenchmarks.csproj index 284923c6d7b..b7604ce019b 100644 --- a/src/benchmarks/micro/MicroBenchmarks.csproj +++ b/src/benchmarks/micro/MicroBenchmarks.csproj @@ -118,6 +118,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/src/benchmarks/micro/libraries/System.IO.Compression/TestInputZipFile.zip b/src/benchmarks/micro/libraries/System.IO.Compression/TestInputZipFile.zip new file mode 100644 index 00000000000..663b3e1089b Binary files /dev/null and b/src/benchmarks/micro/libraries/System.IO.Compression/TestInputZipFile.zip differ diff --git a/src/benchmarks/micro/libraries/System.IO.Compression/ZipFileTests.cs b/src/benchmarks/micro/libraries/System.IO.Compression/ZipFileTests.cs new file mode 100644 index 00000000000..ed3870a67fd --- /dev/null +++ b/src/benchmarks/micro/libraries/System.IO.Compression/ZipFileTests.cs @@ -0,0 +1,42 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using BenchmarkDotNet.Attributes; +using MicroBenchmarks; + +namespace System.IO.Compression; + +[BenchmarkCategory(Categories.Libraries, Categories.NoWASM)] +public class ZipFileTests +{ + private static readonly string _testOutputDirectory = FileUtils.GetTestFilePath(); + private static readonly string _testOutputZipFile = Path.Combine(_testOutputDirectory, "TestOutputZipFile.zip"); + private static readonly string _testInputDirectory = Path.Combine( + AppContext.BaseDirectory, "libraries", "System.IO.Compression", "TestData"); + private static readonly string _testInputZipFile = Path.Combine( + AppContext.BaseDirectory, "libraries", "System.IO.Compression", "TestInputZipFile.zip"); + + [IterationSetup(Target = nameof(ZipFileCreateFromDirectory))] + public void IterationSetup() + { + Directory.CreateDirectory(_testOutputDirectory); + } + + [IterationCleanup(Target = nameof(ZipFileCreateFromDirectory))] + public void IterationCleanup() + { + Directory.Delete(_testOutputDirectory, recursive: true); + } + + [Benchmark] + public void ZipFileCreateFromDirectory() + { + ZipFile.CreateFromDirectory(_testInputDirectory, _testOutputZipFile); + } + + public void ZipFileExtractToDirectory() + { + ZipFile.ExtractToDirectory(_testInputZipFile, _testOutputDirectory); + } +} \ No newline at end of file