diff --git a/test/IbanNet.Benchmark/BenchmarkResults.md b/test/IbanNet.Benchmark/BenchmarkResults.md
index 4e4c988..a54bd98 100644
--- a/test/IbanNet.Benchmark/BenchmarkResults.md
+++ b/test/IbanNet.Benchmark/BenchmarkResults.md
@@ -1,30 +1,27 @@
# IbanNet Benchmark Results
-## Performance for >= v5.6
+## Performance for >= v5.16.0
A single validation:
```
-BenchmarkDotNet v0.13.10, Windows 10 (10.0.19045.3930/22H2/2022Update)
+BenchmarkDotNet v0.14.0, Windows 10 (10.0.19045.4894/22H2/2022Update)
Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
-.NET SDK 8.0.100
- [Host] : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
- Job-GROKDG : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
- Job-KWQHNY : .NET 6.0.26 (6.0.2623.60508), X64 RyuJIT AVX2
- Job-FTQOOW : .NET Framework 4.8.1 (4.8.9181.0), X64 RyuJIT VectorSize=256
+.NET SDK 8.0.400
+ [Host] : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2
+ Job-EYAHAL : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2
+ Job-LNJUSU : .NET 6.0.33 (6.0.3324.36610), X64 RyuJIT AVX2
+ Job-MFVJWZ : .NET Framework 4.8.1 (4.8.9261.0), X64 RyuJIT VectorSize=256
```
| Method | Runtime | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
|--------- |------------------- |---------:|--------:|--------:|------:|--------:|-------:|----------:|------------:|
-| Validate | .NET 8.0 | 134.5 ns | 2.72 ns | 3.99 ns | 1.00 | 0.00 | 0.0253 | 160 B | 1.00 |
-| Validate | .NET 6.0 | 222.1 ns | 3.72 ns | 3.48 ns | 1.65 | 0.06 | 0.0279 | 176 B | 1.10 |
-| Validate | .NET Core 3.1 | 274.3 ns | 5.48 ns | 6.73 ns | 2.05 | 0.07 | 0.0277 | 176 B | 1.10 |
-| Validate | .NET Framework 4.8 | 292.5 ns | 2.39 ns | 2.00 ns | 2.16 | 0.06 | 0.0277 | 177 B | 1.11 |
+| Validate | .NET 8.0 | 137.0 ns | 0.88 ns | 0.78 ns | 1.00 | 0.01 | 0.0253 | 160 B | 1.00 |
+| Validate | .NET 6.0 | 233.5 ns | 4.06 ns | 3.39 ns | 1.70 | 0.03 | 0.0277 | 176 B | 1.10 |
+| Validate | .NET Framework 4.8 | 322.5 ns | 6.35 ns | 8.70 ns | 2.35 | 0.06 | 0.0277 | 177 B | 1.11 |
-### Comparison with other validators
-
-> Worth mentioning is that IbanNet validates more strictly than the other alternative (competing) libraries, yet comes out quite a lot faster and has a much lower memory footprint.
+### Bulk (10k) runs
#### Legend
@@ -32,23 +29,17 @@ Intel Core i7-8700K CPU 3.70GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical
- *Singleton*: strict validation, singleton validator
- *Transient*: strict validation, transient validator (per validation). Notice the extra allocations/GC. This is not recommended, and purely for demonstration.
-| Method | Runtime | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
-|--------------------- |------------------- |------ |----------:|----------:|----------:|------:|--------:|----------:|----------:|------------:|
-| Singleton_CacheReuse | .NET 8.0 | 10000 | 1.277 ms | 0.0074 ms | 0.0066 ms | 0.48 | 0.01 | 253.9063 | 1.53 MB | 0.90 |
-| Singleton_CacheReuse | .NET 6.0 | 10000 | 2.148 ms | 0.0221 ms | 0.0207 ms | 0.81 | 0.01 | 277.3438 | 1.68 MB | 0.99 |
-| Singleton | .NET 8.0 | 10000 | 2.638 ms | 0.0234 ms | 0.0208 ms | 1.00 | 0.00 | 281.2500 | 1.7 MB | 1.00 |
-| Singleton_CacheReuse | .NET Framework 4.8 | 10000 | 2.988 ms | 0.0293 ms | 0.0274 ms | 1.13 | 0.02 | 277.3438 | 1.68 MB | 0.99 |
-| Singleton | .NET 6.0 | 10000 | 3.084 ms | 0.0143 ms | 0.0126 ms | 1.17 | 0.01 | 281.2500 | 1.7 MB | 1.00 |
-| Singleton | .NET Framework 4.8 | 10000 | 3.957 ms | 0.0292 ms | 0.0273 ms | 1.50 | 0.01 | 281.2500 | 1.71 MB | 1.00 |
-| Transient | .NET 8.0 | 10000 | 5.062 ms | 0.0360 ms | 0.0337 ms | 1.92 | 0.02 | 1195.3125 | 7.19 MB | 4.23 |
-| Transient | .NET 6.0 | 10000 | 5.759 ms | 0.0297 ms | 0.0263 ms | 2.18 | 0.02 | 1265.6250 | 7.58 MB | 4.45 |
-| Transient | .NET Framework 4.8 | 10000 | 6.907 ms | 0.0980 ms | 0.0869 ms | 2.62 | 0.04 | 1289.0625 | 7.75 MB | 4.56 |
-| NuGet_IbanValidator | .NET 8.0 | 10000 | 12.850 ms | 0.0745 ms | 0.0622 ms | 4.87 | 0.04 | 3062.5000 | 18.36 MB | 10.80 |
-| NuGet_IbanValidator | .NET 6.0 | 10000 | 13.608 ms | 0.1048 ms | 0.0929 ms | 5.16 | 0.05 | 3375.0000 | 20.21 MB | 11.88 |
-| NuGet_IBAN4NET | .NET 8.0 | 10000 | 28.821 ms | 0.1193 ms | 0.1115 ms | 10.93 | 0.10 | 1687.5000 | 10.18 MB | 5.99 |
-| NuGet_IBAN4NET | .NET 6.0 | 10000 | 36.304 ms | 0.2308 ms | 0.2046 ms | 13.76 | 0.12 | 1642.8571 | 10.19 MB | 5.99 |
-| NuGet_IbanValidator | .NET Framework 4.8 | 10000 | 53.135 ms | 0.4288 ms | 0.3801 ms | 20.14 | 0.22 | 6600.0000 | 39.89 MB | 23.45 |
-| NuGet_IBAN4NET | .NET Framework 4.8 | 10000 | 53.914 ms | 0.3762 ms | 0.3519 ms | 20.44 | 0.23 | 2000.0000 | 12.05 MB | 7.08 |
+| Method | Runtime | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
+|--------------------- |------------------- |------ |---------:|----------:|----------:|------:|--------:|----------:|----------:|------------:|
+| Singleton_CacheReuse | .NET 8.0 | 10000 | 1.391 ms | 0.0243 ms | 0.0215 ms | 0.50 | 0.01 | 253.9063 | 1.53 MB | 0.90 |
+| Singleton_CacheReuse | .NET 6.0 | 10000 | 2.346 ms | 0.0453 ms | 0.0484 ms | 0.84 | 0.02 | 277.3438 | 1.68 MB | 0.99 |
+| Singleton | .NET 8.0 | 10000 | 2.809 ms | 0.0371 ms | 0.0567 ms | 1.00 | 0.03 | 281.2500 | 1.7 MB | 1.00 |
+| Singleton_CacheReuse | .NET Framework 4.8 | 10000 | 3.254 ms | 0.0211 ms | 0.0197 ms | 1.16 | 0.02 | 277.3438 | 1.68 MB | 0.99 |
+| Singleton | .NET 6.0 | 10000 | 3.363 ms | 0.0658 ms | 0.0855 ms | 1.20 | 0.04 | 281.2500 | 1.7 MB | 1.00 |
+| Singleton | .NET Framework 4.8 | 10000 | 4.248 ms | 0.0492 ms | 0.0461 ms | 1.51 | 0.03 | 281.2500 | 1.71 MB | 1.00 |
+| Transient | .NET 8.0 | 10000 | 5.311 ms | 0.0384 ms | 0.0320 ms | 1.89 | 0.04 | 1195.3125 | 7.2 MB | 4.23 |
+| Transient | .NET 6.0 | 10000 | 6.085 ms | 0.1215 ms | 0.1300 ms | 2.17 | 0.06 | 1265.6250 | 7.58 MB | 4.45 |
+| Transient | .NET Framework 4.8 | 10000 | 7.467 ms | 0.1491 ms | 0.1322 ms | 2.66 | 0.07 | 1289.0625 | 7.75 MB | 4.55 |
### CLI
diff --git a/test/IbanNet.Benchmark/IbanNet.Benchmark.csproj b/test/IbanNet.Benchmark/IbanNet.Benchmark.csproj
index d799e27..93ce361 100644
--- a/test/IbanNet.Benchmark/IbanNet.Benchmark.csproj
+++ b/test/IbanNet.Benchmark/IbanNet.Benchmark.csproj
@@ -2,16 +2,13 @@
Exe
- net8.0;net6.0;net48;net472
+ net8.0;net6.0;net48
false
disable
- $(DefineConstants);VALIDATOR_COMPARISONS
-
-
diff --git a/test/IbanNet.Benchmark/ValidatorBenchmark.cs b/test/IbanNet.Benchmark/ValidatorBenchmark.cs
index 485894d..f5cafc9 100644
--- a/test/IbanNet.Benchmark/ValidatorBenchmark.cs
+++ b/test/IbanNet.Benchmark/ValidatorBenchmark.cs
@@ -1,8 +1,5 @@
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
-#if VALIDATOR_COMPARISONS
-using SinKien.IBAN4Net;
-#endif
namespace IbanNet.Benchmark;
@@ -12,9 +9,6 @@ namespace IbanNet.Benchmark;
public class ValidatorBenchmark
{
private IbanValidator _validator;
-#if VALIDATOR_COMPARISONS
- private IbanValidation.IbanValidator _nugetIbanValidator;
-#endif
private IList _testData;
[Params(10000)]
@@ -26,10 +20,6 @@ public void GlobalSetup()
// IbanNet setup
_validator = new IbanValidator();
-#if VALIDATOR_COMPARISONS
- _nugetIbanValidator = new IbanValidation.IbanValidator();
-#endif
-
_testData = TestSamples.GetIbanSamples(Count);
}
@@ -67,26 +57,4 @@ public void Singleton_CacheReuse()
_validator.Validate(_testData[0]);
}
}
-
-#if VALIDATOR_COMPARISONS
- [Benchmark]
- public void NuGet_IbanValidator()
- {
- // ReSharper disable once ForCanBeConvertedToForeach
- for (int i = 0; i < _testData.Count; i++)
- {
- _nugetIbanValidator.Validate(_testData[i]);
- }
- }
-
- [Benchmark]
- public void NuGet_IBAN4NET()
- {
- // ReSharper disable once ForCanBeConvertedToForeach
- for (int i = 0; i < _testData.Count; i++)
- {
- IbanUtils.IsValid(_testData[i], out IbanFormatViolation _);
- }
- }
-#endif
}