Skip to content

1.2.0

Choose a tag to compare

@dolifer dolifer released this 24 Mar 21:12
· 241 commits to main since this release

Target net8.0

  • update Directory.build.props to target net8.0
  • update of BenchmarkDotNet to latest version

Benchmarks

Did a quick check if there is a need to explicitly build and target higher versions of .NET Core

BenchmarkDotNet v0.13.12, macOS Sonoma 14.4 (23E214) [Darwin 23.4.0]
Apple M2, 1 CPU, 8 logical and 8 physical cores
.NET SDK 8.0.203
  [Host]   : .NET 7.0.11 (7.0.1123.42427), Arm64 RyuJIT AdvSIMD
  .NET 6.0 : .NET 6.0.12 (6.0.1222.56807), Arm64 RyuJIT AdvSIMD
  .NET 7.0 : .NET 7.0.11 (7.0.1123.42427), Arm64 RyuJIT AdvSIMD
  .NET 8.0 : .NET 8.0.3 (8.0.324.11423), Arm64 RyuJIT AdvSIMD


| Method    | Job      | Runtime  | Mean      | Error    | StdDev   | Ratio | RatioSD | Gen0   | Gen1   | Gen2   | Allocated | Alloc Ratio |
|---------- |--------- |--------- |----------:|---------:|---------:|------:|--------:|-------:|-------:|-------:|----------:|------------:|
| GetStatic | .NET 6.0 | .NET 6.0 |  25.46 ns | 0.518 ns | 0.655 ns |  1.00 |    0.00 | 0.0306 |      - |      - |      64 B |        1.00 |
| GetStatic | .NET 7.0 | .NET 7.0 |  23.16 ns | 0.235 ns | 0.196 ns |  0.91 |    0.02 | 0.0076 |      - |      - |      64 B |        1.00 |
| GetStatic | .NET 8.0 | .NET 8.0 |  21.65 ns | 0.153 ns | 0.128 ns |  0.85 |    0.02 | 0.0076 |      - |      - |      64 B |        1.00 |
|           |          |          |           |          |          |       |         |        |        |        |           |             |
| GetNew    | .NET 6.0 | .NET 6.0 | 378.20 ns | 7.485 ns | 7.001 ns |  1.00 |    0.00 | 0.6771 |      - |      - |    1416 B |        1.00 |
| GetNew    | .NET 7.0 | .NET 7.0 | 274.74 ns | 5.478 ns | 6.928 ns |  0.73 |    0.02 | 0.1693 | 0.0005 |      - |    1416 B |        1.00 |
| GetNew    | .NET 8.0 | .NET 8.0 | 277.90 ns | 5.571 ns | 7.809 ns |  0.73 |    0.03 | 0.1693 | 0.0005 | 0.0005 |    1416 B |        1.00 |
  • GetStatic - create a Query once, builds in into a string and shares the same value across all executions.
  • GetNew - create a new Query for each of the executions.

Benchmarks code can be found in the repository, so you can check by yourself.