Add benchmarks for .NET 7 in JIT and Native AOT modes.

This commit is contained in:
2022-09-14 02:04:40 +01:00
parent ad7f82d0fa
commit 02d34913fb
4 changed files with 79 additions and 23 deletions

View File

@@ -17,7 +17,7 @@
<Product>Aaru Data Preservation Suite</Product> <Product>Aaru Data Preservation Suite</Product>
<Title>Aaru6.Checksums</Title> <Title>Aaru6.Checksums</Title>
<ApplicationVersion>$(Version)</ApplicationVersion> <ApplicationVersion>$(Version)</ApplicationVersion>
<TargetFramework>net6</TargetFramework> <TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<LangVersion>10</LangVersion> <LangVersion>10</LangVersion>
<Description>C# implementation of CRC16, CRC32, CRC64, Fletcher, MD5, SHA1, SHA2 and SpamSum.</Description> <Description>C# implementation of CRC16, CRC32, CRC64, Fletcher, MD5, SHA1, SHA2 and SpamSum.</Description>
<PackageProjectUrl>https://github.com/aaru-dps/</PackageProjectUrl> <PackageProjectUrl>https://github.com/aaru-dps/</PackageProjectUrl>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>

View File

@@ -2,16 +2,16 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6</TargetFramework> <TargetFrameworks>net6.0;net7.0</TargetFrameworks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aaru.Checksums" Version="5.3.0" /> <PackageReference Include="Aaru.Checksums" Version="5.3.0" />
<PackageReference Include="Aaru.Compression" Version="5.3.0" /> <PackageReference Include="Aaru.Compression" Version="5.3.0" />
<PackageReference Include="Aaru.Compression.Native" Version="6.0.0-alpha8" /> <PackageReference Include="Aaru.Compression.Native" Version="6.0.0-alpha8" />
<PackageReference Include="BenchmarkDotNet" Version="0.13.1"/> <PackageReference Include="BenchmarkDotNet" Version="0.13.2" />
<PackageReference Include="DotNetZip" Version="1.15.0"/> <PackageReference Include="DotNetZip" Version="1.16.0" />
<PackageReference Include="SharpCompress" Version="0.30.0"/> <PackageReference Include="SharpCompress" Version="0.32.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -6,6 +6,8 @@ using BenchmarkDotNet.Jobs;
namespace AaruBenchmark namespace AaruBenchmark
{ {
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class AppleRleBenchs public class AppleRleBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -19,6 +21,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class TeleDiskLzhBenchs public class TeleDiskLzhBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -29,6 +33,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class ADCBenchs public class ADCBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -42,6 +48,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class GzipBenchs public class GzipBenchs
{ {
[Benchmark] [Benchmark]
@@ -55,6 +63,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class CompressGzipBenchs public class CompressGzipBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -68,6 +78,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Bzip2Benchs public class Bzip2Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -81,6 +93,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class CompressBzip2Benchs public class CompressBzip2Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -93,6 +107,9 @@ namespace AaruBenchmark
public void AaruNative() => Compression.AaruNative.CompressBzip2(); public void AaruNative() => Compression.AaruNative.CompressBzip2();
} }
[SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class LzipBenchs public class LzipBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -102,6 +119,9 @@ namespace AaruBenchmark
public void AaruNative() => Compression.AaruNative.Lzip(); public void AaruNative() => Compression.AaruNative.Lzip();
} }
[SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class CompressLzipBenchs public class CompressLzipBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -111,6 +131,9 @@ namespace AaruBenchmark
public void AaruNative() => Compression.AaruNative.CompressLzip(); public void AaruNative() => Compression.AaruNative.CompressLzip();
} }
[SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class LzmaBenchs public class LzmaBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -120,6 +143,9 @@ namespace AaruBenchmark
public void AaruNative() => Compression.AaruNative.Lzma(); public void AaruNative() => Compression.AaruNative.Lzma();
} }
[SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class CompressLzmaBenchs public class CompressLzmaBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -130,6 +156,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class FlacBenchs public class FlacBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -140,6 +168,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class CompressFlacBenchs public class CompressFlacBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -150,6 +180,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Adler32Benchs public class Adler32Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -163,6 +195,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Fletcher16Benchs public class Fletcher16Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -176,6 +210,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Fletcher32Benchs public class Fletcher32Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -189,6 +225,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Crc16CcittBenchs public class Crc16CcittBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -202,6 +240,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Crc16Benchs public class Crc16Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -215,6 +255,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Crc32Benchs public class Crc32Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -231,6 +273,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Crc64Benchs public class Crc64Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -244,6 +288,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Md5Benchs public class Md5Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -257,6 +303,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Sha1Benchs public class Sha1Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -270,6 +318,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Sha256Benchs public class Sha256Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -283,6 +333,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Sha384Benchs public class Sha384Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -296,6 +348,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class Sha512Benchs public class Sha512Benchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]
@@ -309,6 +363,8 @@ namespace AaruBenchmark
} }
[SimpleJob(RuntimeMoniker.Net60)] [SimpleJob(RuntimeMoniker.Net60)]
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
public class SpamSumBenchs public class SpamSumBenchs
{ {
[Benchmark(Baseline = true)] [Benchmark(Baseline = true)]