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