mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-07-08 18:16:30 +00:00
Add BenchmarkDotNet performance benchmarks for all major formats
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
This commit is contained in:
1826
BenchmarkDotNet.Artifacts/BenchmarkRun-20260205-133026.log
Normal file
1826
BenchmarkDotNet.Artifacts/BenchmarkRun-20260205-133026.log
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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 |
|
||||
|------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |-----------:|-----------:|----------:|----------:|
|
||||
| 'GZip: Compress 100KB' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 6,080.9 μs | 1,949.7 μs | 106.87 μs | 523.98 KB |
|
||||
| 'GZip: Decompress 100KB' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 428.4 μs | 364.3 μs | 19.97 μs | 37.74 KB |
|
||||
| 'GZip: Compress 100KB' | Dry | Default | Default | 1 | 1 | ColdStart | 6,951.5 μs | NA | 0.00 μs | 521.07 KB |
|
||||
| 'GZip: Decompress 100KB' | Dry | Default | Default | 1 | 1 | ColdStart | 6,179.5 μs | NA | 0.00 μs | 34.51 KB |
|
||||
@@ -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
|
||||
|
@@ -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>'GZip: Compress 100KB'</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>6,080.9 μs</td><td>1,949.7 μs</td><td>106.87 μs</td><td>523.98 KB</td>
|
||||
</tr><tr><td>'GZip: Decompress 100KB'</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>428.4 μs</td><td>364.3 μs</td><td>19.97 μs</td><td>37.74 KB</td>
|
||||
</tr><tr><td>'GZip: Compress 100KB'</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>6,951.5 μs</td><td>NA</td><td>0.00 μs</td><td>521.07 KB</td>
|
||||
</tr><tr><td>'GZip: Decompress 100KB'</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>6,179.5 μs</td><td>NA</td><td>0.00 μs</td><td>34.51 KB</td>
|
||||
</tr></tbody></table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -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 |
|
||||
|----------------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |----------:|---------:|----------:|----------:|
|
||||
| 'Rar: Extract all entries (Archive API)' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 1.986 ms | 1.050 ms | 0.0576 ms | 95.77 KB |
|
||||
| 'Rar: Extract all entries (Reader API)' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 2.325 ms | 1.576 ms | 0.0864 ms | 154.18 KB |
|
||||
| 'Rar: Extract all entries (Archive API)' | Dry | Default | Default | 1 | 1 | ColdStart | 44.016 ms | NA | 0.0000 ms | 91.88 KB |
|
||||
| 'Rar: Extract all entries (Reader API)' | Dry | Default | Default | 1 | 1 | ColdStart | 48.894 ms | NA | 0.0000 ms | 150.29 KB |
|
||||
@@ -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
|
||||
|
@@ -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>'Rar: Extract all entries (Archive API)'</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>'Rar: Extract all entries (Reader API)'</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>'Rar: Extract all entries (Archive API)'</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>'Rar: Extract all entries (Reader API)'</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>
|
||||
@@ -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 |
|
||||
|---------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |---------:|----------:|---------:|----------:|
|
||||
| '7Zip LZMA: Extract all entries' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 10.76 ms | 14.511 ms | 0.795 ms | 277.93 KB |
|
||||
| '7Zip LZMA2: Extract all entries' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 10.11 ms | 1.960 ms | 0.107 ms | 277.71 KB |
|
||||
| '7Zip LZMA: Extract all entries' | Dry | Default | Default | 1 | 1 | ColdStart | 51.59 ms | NA | 0.000 ms | 274.04 KB |
|
||||
| '7Zip LZMA2: Extract all entries' | Dry | Default | Default | 1 | 1 | ColdStart | 51.68 ms | NA | 0.000 ms | 273.82 KB |
|
||||
@@ -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
|
||||
|
@@ -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>'7Zip LZMA: Extract all entries'</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>'7Zip LZMA2: Extract all entries'</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>'7Zip LZMA: Extract all entries'</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>'7Zip LZMA2: Extract all entries'</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>
|
||||
@@ -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 |
|
||||
|----------------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |------------:|---------:|---------:|----------:|
|
||||
| 'Tar: Extract all entries (Archive API)' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 128.4 μs | 452.3 μs | 24.79 μs | 20.73 KB |
|
||||
| 'Tar: Extract all entries (Reader API)' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 286.7 μs | 390.3 μs | 21.40 μs | 217.47 KB |
|
||||
| 'Tar.GZip: Extract all entries' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | NA | NA | NA | NA |
|
||||
| 'Tar: Create archive with small files' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 117.9 μs | 485.1 μs | 26.59 μs | 72.55 KB |
|
||||
| 'Tar: Extract all entries (Archive API)' | Dry | Default | Default | 1 | 1 | ColdStart | 16,228.5 μs | NA | 0.00 μs | 16.84 KB |
|
||||
| 'Tar: Extract all entries (Reader API)' | Dry | Default | Default | 1 | 1 | ColdStart | 24,383.0 μs | NA | 0.00 μs | 213.58 KB |
|
||||
| 'Tar.GZip: Extract all entries' | Dry | Default | Default | 1 | 1 | ColdStart | NA | NA | NA | NA |
|
||||
| 'Tar: Create archive with small files' | 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)
|
||||
@@ -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
|
||||
|
@@ -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>'Tar: Extract all entries (Archive API)'</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>128.4 μs</td><td>452.3 μs</td><td>24.79 μs</td><td>20.73 KB</td>
|
||||
</tr><tr><td>'Tar: Extract all entries (Reader API)'</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>286.7 μs</td><td>390.3 μs</td><td>21.40 μs</td><td>217.47 KB</td>
|
||||
</tr><tr><td>'Tar.GZip: Extract all entries'</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>'Tar: Create archive with small files'</td><td>Job-QHCVAS</td><td>InProcessEmitToolchain</td><td>1</td><td>3</td><td>Default</td><td>Default</td><td>117.9 μs</td><td>485.1 μs</td><td>26.59 μs</td><td>72.55 KB</td>
|
||||
</tr><tr><td>'Tar: Extract all entries (Archive API)'</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>16,228.5 μs</td><td>NA</td><td>0.00 μs</td><td>16.84 KB</td>
|
||||
</tr><tr><td>'Tar: Extract all entries (Reader API)'</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>24,383.0 μs</td><td>NA</td><td>0.00 μs</td><td>213.58 KB</td>
|
||||
</tr><tr><td>'Tar.GZip: Extract all entries'</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>'Tar: Create archive with small files'</td><td>Dry</td><td>Default</td><td>Default</td><td>1</td><td>1</td><td>ColdStart</td><td>8,466.1 μs</td><td>NA</td><td>0.00 μs</td><td>68.38 KB</td>
|
||||
</tr></tbody></table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -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 |
|
||||
|----------------------------------------- |----------- |----------------------- |---------------- |--------------- |------------ |------------ |----------:|-----------:|----------:|-----------:|-----------:|
|
||||
| 'Zip: Extract all entries (Archive API)' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 5.829 ms | 69.397 ms | 3.8039 ms | 7.3861 ms | 186.55 KB |
|
||||
| 'Zip: Extract all entries (Reader API)' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 4.978 ms | 114.015 ms | 6.2496 ms | 1.4033 ms | 128.05 KB |
|
||||
| 'Zip: Create archive with small files' | Job-QHCVAS | InProcessEmitToolchain | 1 | 3 | Default | Default | 1.175 ms | 11.325 ms | 0.6207 ms | 0.8635 ms | 2812.43 KB |
|
||||
| 'Zip: Extract all entries (Archive API)' | Dry | Default | Default | 1 | 1 | ColdStart | 43.781 ms | NA | 0.0000 ms | 43.7807 ms | 182.66 KB |
|
||||
| 'Zip: Extract all entries (Reader API)' | Dry | Default | Default | 1 | 1 | ColdStart | 38.885 ms | NA | 0.0000 ms | 38.8848 ms | 123.88 KB |
|
||||
| 'Zip: Create archive with small files' | Dry | Default | Default | 1 | 1 | ColdStart | 23.153 ms | NA | 0.0000 ms | 23.1528 ms | 2808.54 KB |
|
||||
@@ -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
|
||||
|
@@ -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>'Zip: Extract all entries (Archive API)'</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>'Zip: Extract all entries (Reader API)'</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>'Zip: Create archive with small files'</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>'Zip: Extract all entries (Archive API)'</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>'Zip: Extract all entries (Reader API)'</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>'Zip: Create archive with small files'</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>
|
||||
@@ -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" />
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
46
tests/SharpCompress.Performance/Benchmarks/GZipBenchmarks.cs
Normal file
46
tests/SharpCompress.Performance/Benchmarks/GZipBenchmarks.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
46
tests/SharpCompress.Performance/Benchmarks/RarBenchmarks.cs
Normal file
46
tests/SharpCompress.Performance/Benchmarks/RarBenchmarks.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
81
tests/SharpCompress.Performance/Benchmarks/TarBenchmarks.cs
Normal file
81
tests/SharpCompress.Performance/Benchmarks/TarBenchmarks.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
69
tests/SharpCompress.Performance/Benchmarks/ZipBenchmarks.cs
Normal file
69
tests/SharpCompress.Performance/Benchmarks/ZipBenchmarks.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user