Performance
Performance is always relative, depending on the scenario and other factors such as hardware, operating system, etc. However, the results below give a good indication of how the library performs.
The benchmark below compares the performance of building SQL queries using the Builder, Fluent Builder, and Dapper's SqlBuilder.
Note
This benchmark does not measure SQL execution times.
BenchmarkDotNet v0.13.12, Windows 11 (10.0.26100.2454)
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET SDK 9.0.100
[Host] : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2
Job-AYCPZN : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2
Job-FCIXJG : .NET Framework 4.8.1 (4.8.9290.0), X64 RyuJIT VectorSize=256
Legends:
Categories : All categories of the corresponded method, class, and assembly
Mean : Arithmetic mean of all measurements
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
1 μs : 1 Microsecond (0.000001 sec)
Method | Runtime | Categories | Mean | Allocated |
---|---|---|---|---|
SqlBuilder (Dapper) | .NET 9.0 | Simple query | 1.614 us | 2.93 KB |
Builder | .NET 9.0 | Simple query | 1.222 us | 4.5 KB |
FluentBuilder | .NET 9.0 | Simple query | 1.390 us | 4.59 KB |
Builder (Reuse parameters) | .NET 9.0 | Simple query | 1.842 us | 4.77 KB |
FluentBuilder (Reuse parameters) | .NET 9.0 | Simple query | 1.987 us | 4.86 KB |
SqlBuilder (Dapper) | .NET Framework 4.8 | Simple query | 3.485 us | 3.44 KB |
Builder | .NET Framework 4.8 | Simple query | 4.378 us | 5.32 KB |
FluentBuilder | .NET Framework 4.8 | Simple query | 4.830 us | 5.25 KB |
Builder (Reuse parameters) | .NET Framework 4.8 | Simple query | 5.134 us | 5.89 KB |
FluentBuilder (Reuse parameters) | .NET Framework 4.8 | Simple query | 5.799 us | 5.82 KB |
SqlBuilder (Dapper) | .NET 9.0 | Large query | 27.432 μs | 42.42 KB |
Builder | .NET 9.0 | Large query | 16.493 μs | 49.05 KB |
FluentBuilder | .NET 9.0 | Large query | 18.964 μs | 48.89 KB |
Builder (Reuse parameters) | .NET 9.0 | Large query | 12.842 μs | 29.41 KB |
FluentBuilder (Reuse parameters) | .NET 9.0 | Large query | 14.713 μs | 29.3 KB |
SqlBuilder (Dapper) | .NET Framework 4.8 | Large query | 46.692 μs | 53.32 KB |
Builder | .NET Framework 4.8 | Large query | 58.544 μs | 61.96 KB |
FluentBuilder | .NET Framework 4.8 | Large query | 68.833 μs | 68.43 KB |
Builder (Reuse parameters) | .NET Framework 4.8 | Large query | 44.878 μs | 37.13 KB |
FluentBuilder (Reuse parameters) | .NET Framework 4.8 | Large query | 55.460 μs | 43.63 KB |
Refer to the benchmark project for more information.