Add BenchmarkDotNet performance benchmarks for all major formats

Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-02-05 13:30:57 +00:00
parent 2f9b6422c3
commit 2541c09973
27 changed files with 2656 additions and 53 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
```
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
UnrollFactor=1 WarmupCount=1
```
| Method | Job | Toolchain | InvocationCount | IterationCount | LaunchCount | RunStrategy | Mean | Error | StdDev | Allocated |
|------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |-----------:|-----------:|----------:|----------:|
| &#39;GZip: Compress 100KB&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 6,080.9 μs | 1,949.7 μs | 106.87 μs | 523.98 KB |
| &#39;GZip: Decompress 100KB&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 428.4 μs | 364.3 μs | 19.97 μs | 37.74 KB |
| &#39;GZip: Compress 100KB&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 6,951.5 μs | NA | 0.00 μs | 521.07 KB |
| &#39;GZip: Decompress 100KB&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 6,179.5 μs | NA | 0.00 μs | 34.51 KB |

View File

@@ -0,0 +1,5 @@
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Allocated
'GZip: Compress 100KB',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,"6,080.9 μs","1,949.7 μs",106.87 μs,523.98 KB
'GZip: Decompress 100KB',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,428.4 μs,364.3 μs,19.97 μs,37.74 KB
'GZip: Compress 100KB',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,"6,951.5 μs",NA,0.00 μs,521.07 KB
'GZip: Decompress 100KB',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,"6,179.5 μs",NA,0.00 μs,34.51 KB
1 Method Job AnalyzeLaunchVariance EvaluateOverhead MaxAbsoluteError MaxRelativeError MinInvokeCount MinIterationTime OutlierMode Affinity EnvironmentVariables Jit LargeAddressAware Platform PowerPlanMode Runtime AllowVeryLargeObjects Concurrent CpuGroups Force HeapAffinitizeMask HeapCount NoAffinitize RetainVm Server Arguments BuildConfiguration Clock EngineFactory NuGetReferences Toolchain IsMutator InvocationCount IterationCount IterationTime LaunchCount MaxIterationCount MaxWarmupIterationCount MemoryRandomization MinIterationCount MinWarmupIterationCount RunStrategy UnrollFactor WarmupCount Mean Error StdDev Allocated
2 'GZip: Compress 100KB' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 6,080.9 μs 1,949.7 μs 106.87 μs 523.98 KB
3 'GZip: Decompress 100KB' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 428.4 μs 364.3 μs 19.97 μs 37.74 KB
4 'GZip: Compress 100KB' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 6,951.5 μs NA 0.00 μs 521.07 KB
5 'GZip: Decompress 100KB' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 6,179.5 μs NA 0.00 μs 34.51 KB

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>SharpCompress.Performance.Benchmarks.GZipBenchmarks-20260205-133044</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
</code></pre>
<pre><code>UnrollFactor=1 WarmupCount=1
</code></pre>
<table>
<thead><tr><th>Method </th><th>Job </th><th>Toolchain </th><th>InvocationCount</th><th>IterationCount</th><th>LaunchCount</th><th>RunStrategy</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>&#39;GZip: Compress 100KB&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>6,080.9 &mu;s</td><td>1,949.7 &mu;s</td><td>106.87 &mu;s</td><td>523.98 KB</td>
</tr><tr><td>&#39;GZip: Decompress 100KB&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>428.4 &mu;s</td><td>364.3 &mu;s</td><td>19.97 &mu;s</td><td>37.74 KB</td>
</tr><tr><td>&#39;GZip: Compress 100KB&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>6,951.5 &mu;s</td><td>NA</td><td>0.00 &mu;s</td><td>521.07 KB</td>
</tr><tr><td>&#39;GZip: Decompress 100KB&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>6,179.5 &mu;s</td><td>NA</td><td>0.00 &mu;s</td><td>34.51 KB</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,17 @@
```
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
UnrollFactor=1 WarmupCount=1
```
| Method | Job | Toolchain | InvocationCount | IterationCount | LaunchCount | RunStrategy | Mean | Error | StdDev | Allocated |
|----------------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |----------:|---------:|----------:|----------:|
| &#39;Rar: Extract all entries (Archive API)&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 1.986 ms | 1.050 ms | 0.0576 ms | 95.77 KB |
| &#39;Rar: Extract all entries (Reader API)&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 2.325 ms | 1.576 ms | 0.0864 ms | 154.18 KB |
| &#39;Rar: Extract all entries (Archive API)&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 44.016 ms | NA | 0.0000 ms | 91.88 KB |
| &#39;Rar: Extract all entries (Reader API)&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 48.894 ms | NA | 0.0000 ms | 150.29 KB |

View File

@@ -0,0 +1,5 @@
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Allocated
'Rar: Extract all entries (Archive API)',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,1.986 ms,1.050 ms,0.0576 ms,95.77 KB
'Rar: Extract all entries (Reader API)',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,2.325 ms,1.576 ms,0.0864 ms,154.18 KB
'Rar: Extract all entries (Archive API)',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,44.016 ms,NA,0.0000 ms,91.88 KB
'Rar: Extract all entries (Reader API)',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,48.894 ms,NA,0.0000 ms,150.29 KB
1 Method Job AnalyzeLaunchVariance EvaluateOverhead MaxAbsoluteError MaxRelativeError MinInvokeCount MinIterationTime OutlierMode Affinity EnvironmentVariables Jit LargeAddressAware Platform PowerPlanMode Runtime AllowVeryLargeObjects Concurrent CpuGroups Force HeapAffinitizeMask HeapCount NoAffinitize RetainVm Server Arguments BuildConfiguration Clock EngineFactory NuGetReferences Toolchain IsMutator InvocationCount IterationCount IterationTime LaunchCount MaxIterationCount MaxWarmupIterationCount MemoryRandomization MinIterationCount MinWarmupIterationCount RunStrategy UnrollFactor WarmupCount Mean Error StdDev Allocated
2 'Rar: Extract all entries (Archive API)' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 1.986 ms 1.050 ms 0.0576 ms 95.77 KB
3 'Rar: Extract all entries (Reader API)' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 2.325 ms 1.576 ms 0.0864 ms 154.18 KB
4 'Rar: Extract all entries (Archive API)' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 44.016 ms NA 0.0000 ms 91.88 KB
5 'Rar: Extract all entries (Reader API)' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 48.894 ms NA 0.0000 ms 150.29 KB

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>SharpCompress.Performance.Benchmarks.RarBenchmarks-20260205-133044</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
</code></pre>
<pre><code>UnrollFactor=1 WarmupCount=1
</code></pre>
<table>
<thead><tr><th>Method </th><th>Job </th><th>Toolchain </th><th>InvocationCount</th><th>IterationCount</th><th>LaunchCount</th><th>RunStrategy</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>&#39;Rar: Extract all entries (Archive API)&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>1.986 ms</td><td>1.050 ms</td><td>0.0576 ms</td><td>95.77 KB</td>
</tr><tr><td>&#39;Rar: Extract all entries (Reader API)&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>2.325 ms</td><td>1.576 ms</td><td>0.0864 ms</td><td>154.18 KB</td>
</tr><tr><td>&#39;Rar: Extract all entries (Archive API)&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>44.016 ms</td><td>NA</td><td>0.0000 ms</td><td>91.88 KB</td>
</tr><tr><td>&#39;Rar: Extract all entries (Reader API)&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>48.894 ms</td><td>NA</td><td>0.0000 ms</td><td>150.29 KB</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,17 @@
```
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
UnrollFactor=1 WarmupCount=1
```
| Method | Job | Toolchain | InvocationCount | IterationCount | LaunchCount | RunStrategy | Mean | Error | StdDev | Allocated |
|---------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |---------:|----------:|---------:|----------:|
| &#39;7Zip LZMA: Extract all entries&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 10.76 ms | 14.511 ms | 0.795 ms | 277.93 KB |
| &#39;7Zip LZMA2: Extract all entries&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 10.11 ms | 1.960 ms | 0.107 ms | 277.71 KB |
| &#39;7Zip LZMA: Extract all entries&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 51.59 ms | NA | 0.000 ms | 274.04 KB |
| &#39;7Zip LZMA2: Extract all entries&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 51.68 ms | NA | 0.000 ms | 273.82 KB |

View File

@@ -0,0 +1,5 @@
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Allocated
'7Zip LZMA: Extract all entries',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,10.76 ms,14.511 ms,0.795 ms,277.93 KB
'7Zip LZMA2: Extract all entries',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,10.11 ms,1.960 ms,0.107 ms,277.71 KB
'7Zip LZMA: Extract all entries',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,51.59 ms,NA,0.000 ms,274.04 KB
'7Zip LZMA2: Extract all entries',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,51.68 ms,NA,0.000 ms,273.82 KB
1 Method Job AnalyzeLaunchVariance EvaluateOverhead MaxAbsoluteError MaxRelativeError MinInvokeCount MinIterationTime OutlierMode Affinity EnvironmentVariables Jit LargeAddressAware Platform PowerPlanMode Runtime AllowVeryLargeObjects Concurrent CpuGroups Force HeapAffinitizeMask HeapCount NoAffinitize RetainVm Server Arguments BuildConfiguration Clock EngineFactory NuGetReferences Toolchain IsMutator InvocationCount IterationCount IterationTime LaunchCount MaxIterationCount MaxWarmupIterationCount MemoryRandomization MinIterationCount MinWarmupIterationCount RunStrategy UnrollFactor WarmupCount Mean Error StdDev Allocated
2 '7Zip LZMA: Extract all entries' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 10.76 ms 14.511 ms 0.795 ms 277.93 KB
3 '7Zip LZMA2: Extract all entries' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 10.11 ms 1.960 ms 0.107 ms 277.71 KB
4 '7Zip LZMA: Extract all entries' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 51.59 ms NA 0.000 ms 274.04 KB
5 '7Zip LZMA2: Extract all entries' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 51.68 ms NA 0.000 ms 273.82 KB

View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>SharpCompress.Performance.Benchmarks.SevenZipBenchmarks-20260205-133045</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
</code></pre>
<pre><code>UnrollFactor=1 WarmupCount=1
</code></pre>
<table>
<thead><tr><th>Method </th><th>Job </th><th>Toolchain </th><th>InvocationCount</th><th>IterationCount</th><th>LaunchCount</th><th>RunStrategy</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>&#39;7Zip LZMA: Extract all entries&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>10.76 ms</td><td>14.511 ms</td><td>0.795 ms</td><td>277.93 KB</td>
</tr><tr><td>&#39;7Zip LZMA2: Extract all entries&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>10.11 ms</td><td>1.960 ms</td><td>0.107 ms</td><td>277.71 KB</td>
</tr><tr><td>&#39;7Zip LZMA: Extract all entries&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>51.59 ms</td><td>NA</td><td>0.000 ms</td><td>274.04 KB</td>
</tr><tr><td>&#39;7Zip LZMA2: Extract all entries&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>51.68 ms</td><td>NA</td><td>0.000 ms</td><td>273.82 KB</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,25 @@
```
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
UnrollFactor=1 WarmupCount=1
```
| Method | Job | Toolchain | InvocationCount | IterationCount | LaunchCount | RunStrategy | Mean | Error | StdDev | Allocated |
|----------------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |------------:|---------:|---------:|----------:|
| &#39;Tar: Extract all entries (Archive API)&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 128.4 μs | 452.3 μs | 24.79 μs | 20.73 KB |
| &#39;Tar: Extract all entries (Reader API)&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 286.7 μs | 390.3 μs | 21.40 μs | 217.47 KB |
| &#39;Tar.GZip: Extract all entries&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | NA | NA | NA | NA |
| &#39;Tar: Create archive with small files&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 117.9 μs | 485.1 μs | 26.59 μs | 72.55 KB |
| &#39;Tar: Extract all entries (Archive API)&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 16,228.5 μs | NA | 0.00 μs | 16.84 KB |
| &#39;Tar: Extract all entries (Reader API)&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 24,383.0 μs | NA | 0.00 μs | 213.58 KB |
| &#39;Tar.GZip: Extract all entries&#39; | Dry | Default | Default | 1 | 1 | ColdStart | NA | NA | NA | NA |
| &#39;Tar: Create archive with small files&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 8,466.1 μs | NA | 0.00 μs | 68.38 KB |
Benchmarks with issues:
TarBenchmarks.'Tar.GZip: Extract all entries': Job-QHCVAS(Toolchain=InProcessEmitToolchain, InvocationCount=1, IterationCount=3, UnrollFactor=1, WarmupCount=1)
TarBenchmarks.'Tar.GZip: Extract all entries': Dry(IterationCount=1, LaunchCount=1, RunStrategy=ColdStart, UnrollFactor=1, WarmupCount=1)

View File

@@ -0,0 +1,9 @@
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Allocated
'Tar: Extract all entries (Archive API)',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,128.4 μs,452.3 μs,24.79 μs,20.73 KB
'Tar: Extract all entries (Reader API)',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,286.7 μs,390.3 μs,21.40 μs,217.47 KB
'Tar.GZip: Extract all entries',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,NA,NA,NA,NA
'Tar: Create archive with small files',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,117.9 μs,485.1 μs,26.59 μs,72.55 KB
'Tar: Extract all entries (Archive API)',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,"16,228.5 μs",NA,0.00 μs,16.84 KB
'Tar: Extract all entries (Reader API)',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,"24,383.0 μs",NA,0.00 μs,213.58 KB
'Tar.GZip: Extract all entries',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,NA,NA,NA,NA
'Tar: Create archive with small files',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,"8,466.1 μs",NA,0.00 μs,68.38 KB
1 Method Job AnalyzeLaunchVariance EvaluateOverhead MaxAbsoluteError MaxRelativeError MinInvokeCount MinIterationTime OutlierMode Affinity EnvironmentVariables Jit LargeAddressAware Platform PowerPlanMode Runtime AllowVeryLargeObjects Concurrent CpuGroups Force HeapAffinitizeMask HeapCount NoAffinitize RetainVm Server Arguments BuildConfiguration Clock EngineFactory NuGetReferences Toolchain IsMutator InvocationCount IterationCount IterationTime LaunchCount MaxIterationCount MaxWarmupIterationCount MemoryRandomization MinIterationCount MinWarmupIterationCount RunStrategy UnrollFactor WarmupCount Mean Error StdDev Allocated
2 'Tar: Extract all entries (Archive API)' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 128.4 μs 452.3 μs 24.79 μs 20.73 KB
3 'Tar: Extract all entries (Reader API)' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 286.7 μs 390.3 μs 21.40 μs 217.47 KB
4 'Tar.GZip: Extract all entries' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 NA NA NA NA
5 'Tar: Create archive with small files' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 117.9 μs 485.1 μs 26.59 μs 72.55 KB
6 'Tar: Extract all entries (Archive API)' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 16,228.5 μs NA 0.00 μs 16.84 KB
7 'Tar: Extract all entries (Reader API)' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 24,383.0 μs NA 0.00 μs 213.58 KB
8 'Tar.GZip: Extract all entries' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 NA NA NA NA
9 'Tar: Create archive with small files' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 8,466.1 μs NA 0.00 μs 68.38 KB

View File

@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>SharpCompress.Performance.Benchmarks.TarBenchmarks-20260205-133046</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
</code></pre>
<pre><code>UnrollFactor=1 WarmupCount=1
</code></pre>
<table>
<thead><tr><th>Method </th><th>Job </th><th>Toolchain </th><th>InvocationCount</th><th>IterationCount</th><th>LaunchCount</th><th>RunStrategy</th><th>Mean </th><th>Error</th><th>StdDev</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>&#39;Tar: Extract all entries (Archive API)&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>128.4 &mu;s</td><td>452.3 &mu;s</td><td>24.79 &mu;s</td><td>20.73 KB</td>
</tr><tr><td>&#39;Tar: Extract all entries (Reader API)&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>286.7 &mu;s</td><td>390.3 &mu;s</td><td>21.40 &mu;s</td><td>217.47 KB</td>
</tr><tr><td>&#39;Tar.GZip: Extract all entries&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>NA</td><td>NA</td><td>NA</td><td>NA</td>
</tr><tr><td>&#39;Tar: Create archive with small files&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>117.9 &mu;s</td><td>485.1 &mu;s</td><td>26.59 &mu;s</td><td>72.55 KB</td>
</tr><tr><td>&#39;Tar: Extract all entries (Archive API)&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>16,228.5 &mu;s</td><td>NA</td><td>0.00 &mu;s</td><td>16.84 KB</td>
</tr><tr><td>&#39;Tar: Extract all entries (Reader API)&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>24,383.0 &mu;s</td><td>NA</td><td>0.00 &mu;s</td><td>213.58 KB</td>
</tr><tr><td>&#39;Tar.GZip: Extract all entries&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>NA</td><td>NA</td><td>NA</td><td>NA</td>
</tr><tr><td>&#39;Tar: Create archive with small files&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>8,466.1 &mu;s</td><td>NA</td><td>0.00 &mu;s</td><td>68.38 KB</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,19 @@
```
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
UnrollFactor=1 WarmupCount=1
```
| Method | Job | Toolchain | InvocationCount | IterationCount | LaunchCount | RunStrategy | Mean | Error | StdDev | Median | Allocated |
|----------------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |----------:|-----------:|----------:|-----------:|-----------:|
| &#39;Zip: Extract all entries (Archive API)&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 5.829 ms | 69.397 ms | 3.8039 ms | 7.3861 ms | 186.55 KB |
| &#39;Zip: Extract all entries (Reader API)&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 4.978 ms | 114.015 ms | 6.2496 ms | 1.4033 ms | 128.05 KB |
| &#39;Zip: Create archive with small files&#39; | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 1.175 ms | 11.325 ms | 0.6207 ms | 0.8635 ms | 2812.43 KB |
| &#39;Zip: Extract all entries (Archive API)&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 43.781 ms | NA | 0.0000 ms | 43.7807 ms | 182.66 KB |
| &#39;Zip: Extract all entries (Reader API)&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 38.885 ms | NA | 0.0000 ms | 38.8848 ms | 123.88 KB |
| &#39;Zip: Create archive with small files&#39; | Dry | Default | Default | 1 | 1 | ColdStart | 23.153 ms | NA | 0.0000 ms | 23.1528 ms | 2808.54 KB |

View File

@@ -0,0 +1,7 @@
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Median,Allocated
'Zip: Extract all entries (Archive API)',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,5.829 ms,69.397 ms,3.8039 ms,7.3861 ms,186.55 KB
'Zip: Extract all entries (Reader API)',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,4.978 ms,114.015 ms,6.2496 ms,1.4033 ms,128.05 KB
'Zip: Create archive with small files',Job-QHCVAS,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,3,Default,Default,Default,Default,Default,Default,Default,Default,1,1,1.175 ms,11.325 ms,0.6207 ms,0.8635 ms,2812.43 KB
'Zip: Extract all entries (Archive API)',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,43.781 ms,NA,0.0000 ms,43.7807 ms,182.66 KB
'Zip: Extract all entries (Reader API)',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,38.885 ms,NA,0.0000 ms,38.8848 ms,123.88 KB
'Zip: Create archive with small files',Dry,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,1,Default,Default,Default,Default,Default,ColdStart,1,1,23.153 ms,NA,0.0000 ms,23.1528 ms,2808.54 KB
1 Method Job AnalyzeLaunchVariance EvaluateOverhead MaxAbsoluteError MaxRelativeError MinInvokeCount MinIterationTime OutlierMode Affinity EnvironmentVariables Jit LargeAddressAware Platform PowerPlanMode Runtime AllowVeryLargeObjects Concurrent CpuGroups Force HeapAffinitizeMask HeapCount NoAffinitize RetainVm Server Arguments BuildConfiguration Clock EngineFactory NuGetReferences Toolchain IsMutator InvocationCount IterationCount IterationTime LaunchCount MaxIterationCount MaxWarmupIterationCount MemoryRandomization MinIterationCount MinWarmupIterationCount RunStrategy UnrollFactor WarmupCount Mean Error StdDev Median Allocated
2 'Zip: Extract all entries (Archive API)' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 5.829 ms 69.397 ms 3.8039 ms 7.3861 ms 186.55 KB
3 'Zip: Extract all entries (Reader API)' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 4.978 ms 114.015 ms 6.2496 ms 1.4033 ms 128.05 KB
4 'Zip: Create archive with small files' Job-QHCVAS False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default InProcessEmitToolchain Default 1 3 Default Default Default Default Default Default Default Default 1 1 1.175 ms 11.325 ms 0.6207 ms 0.8635 ms 2812.43 KB
5 'Zip: Extract all entries (Archive API)' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 43.781 ms NA 0.0000 ms 43.7807 ms 182.66 KB
6 'Zip: Extract all entries (Reader API)' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 38.885 ms NA 0.0000 ms 38.8848 ms 123.88 KB
7 'Zip: Create archive with small files' Dry False Default Default Default Default Default Default 1111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 1 Default 1 Default Default Default Default Default ColdStart 1 1 23.153 ms NA 0.0000 ms 23.1528 ms 2808.54 KB

View File

@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>SharpCompress.Performance.Benchmarks.ZipBenchmarks-20260205-133047</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.102
[Host] : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Dry : .NET 10.0.2 (10.0.225.61305), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
</code></pre>
<pre><code>UnrollFactor=1 WarmupCount=1
</code></pre>
<table>
<thead><tr><th>Method </th><th>Job </th><th>Toolchain </th><th>InvocationCount</th><th>IterationCount</th><th>LaunchCount</th><th>RunStrategy</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Median</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>&#39;Zip: Extract all entries (Archive API)&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>5.829 ms</td><td>69.397 ms</td><td>3.8039 ms</td><td>7.3861 ms</td><td>186.55 KB</td>
</tr><tr><td>&#39;Zip: Extract all entries (Reader API)&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>4.978 ms</td><td>114.015 ms</td><td>6.2496 ms</td><td>1.4033 ms</td><td>128.05 KB</td>
</tr><tr><td>&#39;Zip: Create archive with small files&#39;</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>1.175 ms</td><td>11.325 ms</td><td>0.6207 ms</td><td>0.8635 ms</td><td>2812.43 KB</td>
</tr><tr><td>&#39;Zip: Extract all entries (Archive API)&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>43.781 ms</td><td>NA</td><td>0.0000 ms</td><td>43.7807 ms</td><td>182.66 KB</td>
</tr><tr><td>&#39;Zip: Extract all entries (Reader API)&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>38.885 ms</td><td>NA</td><td>0.0000 ms</td><td>38.8848 ms</td><td>123.88 KB</td>
</tr><tr><td>&#39;Zip: Create archive with small files&#39;</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>23.153 ms</td><td>NA</td><td>0.0000 ms</td><td>23.1528 ms</td><td>2808.54 KB</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -1,5 +1,6 @@
<Project>
<ItemGroup>
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
<PackageVersion Include="Bullseye" Version="6.1.0" />
<PackageVersion Include="AwesomeAssertions" Version="9.3.0" />
<PackageVersion Include="Glob" Version="1.1.9" />

View File

@@ -216,9 +216,9 @@
"net10.0": {
"Microsoft.NET.ILLink.Tasks": {
"type": "Direct",
"requested": "[10.0.0, )",
"resolved": "10.0.0",
"contentHash": "kICGrGYEzCNI3wPzfEXcwNHgTvlvVn9yJDhSdRK+oZQy4jvYH529u7O0xf5ocQKzOMjfS07+3z9PKRIjrFMJDA=="
"requested": "[10.0.2, )",
"resolved": "10.0.2",
"contentHash": "sXdDtMf2qcnbygw9OdE535c2lxSxrZP8gO4UhDJ0xiJbl1wIqXS1OTcTDFTIJPOFd6Mhcm8gPEthqWGUxBsTqw=="
},
"Microsoft.NETFramework.ReferenceAssemblies": {
"type": "Direct",
@@ -264,9 +264,9 @@
"net8.0": {
"Microsoft.NET.ILLink.Tasks": {
"type": "Direct",
"requested": "[8.0.22, )",
"resolved": "8.0.22",
"contentHash": "MhcMithKEiyyNkD2ZfbDZPmcOdi0GheGfg8saEIIEfD/fol3iHmcV8TsZkD4ZYz5gdUuoX4YtlVySUU7Sxl9SQ=="
"requested": "[8.0.23, )",
"resolved": "8.0.23",
"contentHash": "GqHiB1HbbODWPbY/lc5xLQH8siEEhNA0ptpJCC6X6adtAYNEzu5ZlqV3YHA3Gh7fuEwgA8XqVwMtH2KNtuQM1Q=="
},
"Microsoft.NETFramework.ReferenceAssemblies": {
"type": "Direct",

View File

@@ -0,0 +1,40 @@
using System;
using System.IO;
namespace SharpCompress.Performance.Benchmarks;
public abstract class ArchiveBenchmarkBase
{
protected static readonly string TEST_ARCHIVES_PATH;
static ArchiveBenchmarkBase()
{
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var index = baseDirectory.IndexOf(
"SharpCompress.Performance",
StringComparison.OrdinalIgnoreCase
);
if (index == -1)
{
throw new InvalidOperationException(
"Could not find SharpCompress.Performance in the base directory path"
);
}
var path = baseDirectory.Substring(0, index);
var solutionBasePath =
Path.GetDirectoryName(path) ?? throw new InvalidOperationException();
TEST_ARCHIVES_PATH = Path.Combine(solutionBasePath, "TestArchives", "Archives");
if (!Directory.Exists(TEST_ARCHIVES_PATH))
{
throw new InvalidOperationException(
$"Test archives directory not found: {TEST_ARCHIVES_PATH}"
);
}
}
protected static string GetArchivePath(string fileName) =>
Path.Combine(TEST_ARCHIVES_PATH, fileName);
}

View File

@@ -0,0 +1,46 @@
using System;
using System.IO;
using BenchmarkDotNet.Attributes;
using SharpCompress.Compressors;
using SharpCompress.Compressors.Deflate;
namespace SharpCompress.Performance.Benchmarks;
[MemoryDiagnoser]
public class GZipBenchmarks
{
private byte[] _sourceData = null!;
private byte[] _compressedData = null!;
[GlobalSetup]
public void Setup()
{
// Create 100KB of test data
_sourceData = new byte[100 * 1024];
new Random(42).NextBytes(_sourceData);
// Pre-compress for decompression benchmark
using var compressStream = new MemoryStream();
using (var gzipStream = new GZipStream(compressStream, CompressionMode.Compress))
{
gzipStream.Write(_sourceData, 0, _sourceData.Length);
}
_compressedData = compressStream.ToArray();
}
[Benchmark(Description = "GZip: Compress 100KB")]
public void GZipCompress()
{
using var outputStream = new MemoryStream();
using var gzipStream = new GZipStream(outputStream, CompressionMode.Compress);
gzipStream.Write(_sourceData, 0, _sourceData.Length);
}
[Benchmark(Description = "GZip: Decompress 100KB")]
public void GZipDecompress()
{
using var inputStream = new MemoryStream(_compressedData);
using var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress);
gzipStream.CopyTo(Stream.Null);
}
}

View File

@@ -0,0 +1,46 @@
using System;
using System.IO;
using System.Linq;
using BenchmarkDotNet.Attributes;
using SharpCompress.Archives.Rar;
using SharpCompress.Readers;
namespace SharpCompress.Performance.Benchmarks;
[MemoryDiagnoser]
public class RarBenchmarks : ArchiveBenchmarkBase
{
private byte[] _rarBytes = null!;
[GlobalSetup]
public void Setup()
{
_rarBytes = File.ReadAllBytes(GetArchivePath("Rar.rar"));
}
[Benchmark(Description = "Rar: Extract all entries (Archive API)")]
public void RarExtractArchiveApi()
{
using var stream = new MemoryStream(_rarBytes);
using var archive = RarArchive.OpenArchive(stream);
foreach (var entry in archive.Entries.Where(e => !e.IsDirectory))
{
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
}
[Benchmark(Description = "Rar: Extract all entries (Reader API)")]
public void RarExtractReaderApi()
{
using var stream = new MemoryStream(_rarBytes);
using var reader = ReaderFactory.OpenReader(stream);
while (reader.MoveToNextEntry())
{
if (!reader.Entry.IsDirectory)
{
reader.WriteEntryTo(Stream.Null);
}
}
}
}

View File

@@ -0,0 +1,45 @@
using System;
using System.IO;
using System.Linq;
using BenchmarkDotNet.Attributes;
using SharpCompress.Archives.SevenZip;
namespace SharpCompress.Performance.Benchmarks;
[MemoryDiagnoser]
public class SevenZipBenchmarks : ArchiveBenchmarkBase
{
private byte[] _lzmaBytes = null!;
private byte[] _lzma2Bytes = null!;
[GlobalSetup]
public void Setup()
{
_lzmaBytes = File.ReadAllBytes(GetArchivePath("7Zip.LZMA.7z"));
_lzma2Bytes = File.ReadAllBytes(GetArchivePath("7Zip.LZMA2.7z"));
}
[Benchmark(Description = "7Zip LZMA: Extract all entries")]
public void SevenZipLzmaExtract()
{
using var stream = new MemoryStream(_lzmaBytes);
using var archive = SevenZipArchive.OpenArchive(stream);
foreach (var entry in archive.Entries.Where(e => !e.IsDirectory))
{
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
}
[Benchmark(Description = "7Zip LZMA2: Extract all entries")]
public void SevenZipLzma2Extract()
{
using var stream = new MemoryStream(_lzma2Bytes);
using var archive = SevenZipArchive.OpenArchive(stream);
foreach (var entry in archive.Entries.Where(e => !e.IsDirectory))
{
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
}
}

View File

@@ -0,0 +1,81 @@
using System;
using System.IO;
using System.Linq;
using BenchmarkDotNet.Attributes;
using SharpCompress.Archives.Tar;
using SharpCompress.Common;
using SharpCompress.Readers;
using SharpCompress.Writers;
namespace SharpCompress.Performance.Benchmarks;
[MemoryDiagnoser]
public class TarBenchmarks : ArchiveBenchmarkBase
{
private byte[] _tarBytes = null!;
private byte[] _tarGzBytes = null!;
[GlobalSetup]
public void Setup()
{
_tarBytes = File.ReadAllBytes(GetArchivePath("Tar.tar"));
_tarGzBytes = File.ReadAllBytes(GetArchivePath("Tar.tar.gz"));
}
[Benchmark(Description = "Tar: Extract all entries (Archive API)")]
public void TarExtractArchiveApi()
{
using var stream = new MemoryStream(_tarBytes);
using var archive = TarArchive.OpenArchive(stream);
foreach (var entry in archive.Entries.Where(e => !e.IsDirectory))
{
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
}
[Benchmark(Description = "Tar: Extract all entries (Reader API)")]
public void TarExtractReaderApi()
{
using var stream = new MemoryStream(_tarBytes);
using var reader = ReaderFactory.OpenReader(stream);
while (reader.MoveToNextEntry())
{
if (!reader.Entry.IsDirectory)
{
reader.WriteEntryTo(Stream.Null);
}
}
}
[Benchmark(Description = "Tar.GZip: Extract all entries")]
public void TarGzipExtract()
{
using var stream = new MemoryStream(_tarGzBytes);
using var archive = TarArchive.OpenArchive(stream);
foreach (var entry in archive.Entries.Where(e => !e.IsDirectory))
{
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
}
[Benchmark(Description = "Tar: Create archive with small files")]
public void TarCreateSmallFiles()
{
using var outputStream = new MemoryStream();
using var writer = WriterFactory.OpenWriter(
outputStream,
ArchiveType.Tar,
new WriterOptions(CompressionType.None) { LeaveStreamOpen = true }
);
// Create 10 small files
for (int i = 0; i < 10; i++)
{
var data = new byte[1024]; // 1KB each
using var entryStream = new MemoryStream(data);
writer.Write($"file{i}.txt", entryStream);
}
}
}

View File

@@ -0,0 +1,69 @@
using System;
using System.IO;
using System.Linq;
using BenchmarkDotNet.Attributes;
using SharpCompress.Archives.Zip;
using SharpCompress.Common;
using SharpCompress.Readers;
using SharpCompress.Writers;
namespace SharpCompress.Performance.Benchmarks;
[MemoryDiagnoser]
public class ZipBenchmarks : ArchiveBenchmarkBase
{
private string _archivePath = null!;
private byte[] _archiveBytes = null!;
[GlobalSetup]
public void Setup()
{
_archivePath = GetArchivePath("Zip.deflate.zip");
_archiveBytes = File.ReadAllBytes(_archivePath);
}
[Benchmark(Description = "Zip: Extract all entries (Archive API)")]
public void ZipExtractArchiveApi()
{
using var stream = new MemoryStream(_archiveBytes);
using var archive = ZipArchive.OpenArchive(stream);
foreach (var entry in archive.Entries.Where(e => !e.IsDirectory))
{
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
}
[Benchmark(Description = "Zip: Extract all entries (Reader API)")]
public void ZipExtractReaderApi()
{
using var stream = new MemoryStream(_archiveBytes);
using var reader = ReaderFactory.OpenReader(stream);
while (reader.MoveToNextEntry())
{
if (!reader.Entry.IsDirectory)
{
reader.WriteEntryTo(Stream.Null);
}
}
}
[Benchmark(Description = "Zip: Create archive with small files")]
public void ZipCreateSmallFiles()
{
using var outputStream = new MemoryStream();
using var writer = WriterFactory.OpenWriter(
outputStream,
ArchiveType.Zip,
new WriterOptions(CompressionType.Deflate) { LeaveStreamOpen = true }
);
// Create 10 small files
for (int i = 0; i < 10; i++)
{
var data = new byte[1024]; // 1KB each
using var entryStream = new MemoryStream(data);
writer.Write($"file{i}.txt", entryStream);
}
}
}

View File

@@ -1,54 +1,25 @@
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using SharpCompress.Archives;
using SharpCompress.Performance;
using SharpCompress.Readers;
using SharpCompress.Test;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Running;
using BenchmarkDotNet.Toolchains.InProcess.Emit;
var index = AppDomain.CurrentDomain.BaseDirectory.IndexOf(
"SharpCompress.Performance",
StringComparison.OrdinalIgnoreCase
);
var path = AppDomain.CurrentDomain.BaseDirectory.Substring(0, index);
var SOLUTION_BASE_PATH = Path.GetDirectoryName(path) ?? throw new ArgumentNullException();
namespace SharpCompress.Performance;
var TEST_ARCHIVES_PATH = Path.Combine(SOLUTION_BASE_PATH, "TestArchives", "Archives");
//using var _ = JetbrainsProfiler.Memory($"/Users/adam/temp/");
using (var __ = JetbrainsProfiler.Cpu($"/Users/adam/temp/"))
public class Program
{
var testArchives = new[]
public static void Main(string[] args)
{
"Rar.Audio_program.rar",
var config = DefaultConfig
.Instance.AddJob(
Job.Default
.WithToolchain(InProcessEmitToolchain.Instance)
.WithWarmupCount(1) // Minimal warmup iterations for CI
.WithIterationCount(3) // Minimal measurement iterations for CI
.WithInvocationCount(1)
.WithUnrollFactor(1)
);
//"64bitstream.zip.7z",
//"TarWithSymlink.tar.gz"
};
var arcs = testArchives.Select(a => Path.Combine(TEST_ARCHIVES_PATH, a)).ToArray();
for (int i = 0; i < 50; i++)
{
using var found = ArchiveFactory.OpenArchive(arcs[0]);
foreach (var entry in found.Entries.Where(entry => !entry.IsDirectory))
{
Console.WriteLine($"Extracting {entry.Key}");
using var entryStream = entry.OpenEntryStream();
entryStream.CopyTo(Stream.Null);
}
/*using var found = ReaderFactory.OpenReader(arcs[0]);
while (found.MoveToNextEntry())
{
var entry = found.Entry;
if (entry.IsDirectory)
continue;
Console.WriteLine($"Extracting {entry.Key}");
found.WriteEntryTo(Stream.Null);
}*/
BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, config);
}
Console.WriteLine("Still running...");
}
await Task.Delay(500);

View File

@@ -4,6 +4,7 @@
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" />
<PackageReference Include="JetBrains.Profiler.SelfApi" />
<ProjectReference Include="..\..\src\SharpCompress\SharpCompress.csproj" />
</ItemGroup>

View File

@@ -2,6 +2,24 @@
"version": 2,
"dependencies": {
"net10.0": {
"BenchmarkDotNet": {
"type": "Direct",
"requested": "[0.14.0, )",
"resolved": "0.14.0",
"contentHash": "eIPSDKi3oni734M1rt/XJAwGQQOIf9gLjRRKKJ0HuVy3vYd7gnmAIX1bTjzI9ZbAY/nPddgqqgM/TeBYitMCIg==",
"dependencies": {
"BenchmarkDotNet.Annotations": "0.14.0",
"CommandLineParser": "2.9.1",
"Gee.External.Capstone": "2.3.0",
"Iced": "1.17.0",
"Microsoft.CodeAnalysis.CSharp": "4.1.0",
"Microsoft.Diagnostics.Runtime": "2.2.332302",
"Microsoft.Diagnostics.Tracing.TraceEvent": "3.1.8",
"Microsoft.DotNet.PlatformAbstractions": "3.1.6",
"Perfolizer": "[0.3.17]",
"System.Management": "5.0.0"
}
},
"JetBrains.Profiler.SelfApi": {
"type": "Direct",
"requested": "[2.5.16, )",
@@ -37,6 +55,26 @@
"resolved": "17.14.15",
"contentHash": "mXQPJsbuUD2ydq4/ffd8h8tSOFCXec+2xJOVNCvXjuMOq/+5EKHq3D2m2MC2+nUaXeFMSt66VS/J4HdKBixgcw=="
},
"BenchmarkDotNet.Annotations": {
"type": "Transitive",
"resolved": "0.14.0",
"contentHash": "CUDCg6bgHrDzhjnA+IOBl5gAo8Y5hZ2YSs7MBXrYMlMKpBZqrD5ez0537uDveOkcf+YWAoK+S4sMcuWPbIz8bw=="
},
"CommandLineParser": {
"type": "Transitive",
"resolved": "2.9.1",
"contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA=="
},
"Gee.External.Capstone": {
"type": "Transitive",
"resolved": "2.3.0",
"contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw=="
},
"Iced": {
"type": "Transitive",
"resolved": "1.17.0",
"contentHash": "8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw=="
},
"JetBrains.FormatRipper": {
"type": "Transitive",
"resolved": "2.4.0",
@@ -63,6 +101,118 @@
"resolved": "10.0.102",
"contentHash": "0i81LYX31U6UiXz4NOLbvc++u+/mVDmOt+PskrM/MygpDxkv9THKQyRUmavBpLK6iBV0abNWnn+CQgSRz//Pwg=="
},
"Microsoft.CodeAnalysis.Analyzers": {
"type": "Transitive",
"resolved": "3.3.3",
"contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ=="
},
"Microsoft.CodeAnalysis.Common": {
"type": "Transitive",
"resolved": "4.1.0",
"contentHash": "bNzTyxP3iD5FPFHfVDl15Y6/wSoI7e3MeV0lOaj9igbIKTjgrmuw6LoVJ06jUNFA7+KaDC/OIsStWl/FQJz6sQ==",
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.3.3"
}
},
"Microsoft.CodeAnalysis.CSharp": {
"type": "Transitive",
"resolved": "4.1.0",
"contentHash": "sbu6kDGzo9bfQxuqWpeEE7I9P30bSuZEnpDz9/qz20OU6pm79Z63+/BsAzO2e/R/Q97kBrpj647wokZnEVr97w==",
"dependencies": {
"Microsoft.CodeAnalysis.Common": "[4.1.0]"
}
},
"Microsoft.Diagnostics.NETCore.Client": {
"type": "Transitive",
"resolved": "0.2.251802",
"contentHash": "bqnYl6AdSeboeN4v25hSukK6Odm6/54E3Y2B8rBvgqvAW0mF8fo7XNRVE2DMOG7Rk0fiuA079QIH28+V+W1Zdg==",
"dependencies": {
"Microsoft.Bcl.AsyncInterfaces": "1.1.0",
"Microsoft.Extensions.Logging": "2.1.1"
}
},
"Microsoft.Diagnostics.Runtime": {
"type": "Transitive",
"resolved": "2.2.332302",
"contentHash": "Hp84ivxSKIMTBzYSATxmUsm3YSXHWivcwiRRbsydGmqujMUK8BAueLN0ssAVEOkOBmh0vjUBhrq7YcroT7VCug==",
"dependencies": {
"Microsoft.Diagnostics.NETCore.Client": "0.2.251802"
}
},
"Microsoft.Diagnostics.Tracing.TraceEvent": {
"type": "Transitive",
"resolved": "3.1.8",
"contentHash": "kl3UMrZKSeSEYZ8rt/GjLUQToREjgQABqfg6PzQBmSlYHTZOKE9ePEOS2xptROQ9SVvngg3QGX51TIT11iZ0wA=="
},
"Microsoft.DotNet.PlatformAbstractions": {
"type": "Transitive",
"resolved": "3.1.6",
"contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
"dependencies": {
"Microsoft.Extensions.Primitives": "2.1.1"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
"dependencies": {
"Microsoft.Extensions.Configuration": "2.1.1"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA=="
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
"dependencies": {
"Microsoft.Extensions.Configuration.Binder": "2.1.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
"Microsoft.Extensions.Logging.Abstractions": "2.1.1",
"Microsoft.Extensions.Options": "2.1.1"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA=="
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
"Microsoft.Extensions.Primitives": "2.1.1"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
"resolved": "2.1.1",
"contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
},
"Microsoft.NETCore.Platforms": {
"type": "Transitive",
"resolved": "5.0.0",
"contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
},
"Microsoft.NETFramework.ReferenceAssemblies.net461": {
"type": "Transitive",
"resolved": "1.0.3",
@@ -73,8 +223,33 @@
"resolved": "10.0.102",
"contentHash": "Mk1IMb9q5tahC2NltxYXFkLBtuBvfBoCQ3pIxYQWfzbCE9o1OB9SsHe0hnNGo7lWgTA/ePbFAJLWu6nLL9K17A=="
},
"Perfolizer": {
"type": "Transitive",
"resolved": "0.3.17",
"contentHash": "FQgtCoF2HFwvzKWulAwBS5BGLlh8pgbrJtOp47jyBwh2CW16juVtacN1azOA2BqdrJXkXTNLNRMo7ZlHHiuAnA=="
},
"System.CodeDom": {
"type": "Transitive",
"resolved": "5.0.0",
"contentHash": "JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ=="
},
"System.Management": {
"type": "Transitive",
"resolved": "5.0.0",
"contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"System.CodeDom": "5.0.0"
}
},
"sharpcompress": {
"type": "Project"
},
"Microsoft.Bcl.AsyncInterfaces": {
"type": "CentralTransitive",
"requested": "[10.0.0, )",
"resolved": "10.0.0",
"contentHash": "vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA=="
}
}
}