Version 1.2 brings significant performance improvements with a new algorithm, emphasizing memory efficiency and reduced loops. Additionally, keyProperty attribute customization options have been expanded.
Benchmark Results
Environment Information
- BenchmarkDotNet Version: v0.13.11
- Operating System: Windows 10 (10.0.19045.3803/22H2/2022Update)
- Processor: AMD Ryzen 7 7700X, 1 CPU, 16 logical and 8 physical cores
- .NET SDK: 8.0.100
Benchmark Configuration
- Host Environment: .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
- Default Job: .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Database Changes Summary
The table below summarizes the changes in the database:
Method | Added | Edited | Deleted | Total Source Row | Total Destination Row |
---|---|---|---|---|---|
Album | 2 | 4 | 0 | 347 | 345 |
Artist | 0 | 3 | 0 | 275 | 275 |
SyncCustomer | 1 | 17 | 0 | 59 | 58 |
SyncEmployee | 0 | 3 | 0 | 8 | 8 |
Genre | 0 | 2 | 0 | 25 | 25 |
Invoice | 6 | 29 | 0 | 412 | 406 |
InvoiceLine | 36 | 0 | 1 | 2239 | 2204 |
MediaType | 0 | 0 | 0 | 5 | 5 |
Playlist | 0 | 0 | 0 | 18 | 18 |
PlaylistTrack | 9 | 0 | 2 | 8713 | 8706 |
Track | 2 | 166 | 1 | 3502 | 3501 |
These changes in the database are consistent for all benchmarks after this.
Release Information
- Release Tag: v1.2
- Source Code: GitHub Repository
Benchmark Results
The following table summarizes the benchmark results for key methods in DbSyncKit Version 1.2.x:
Method | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
---|---|---|---|---|---|---|---|
SyncAlbum | 67.506 μs | 1.3491 μs | 2.0192 μs | 9.5215 | 0.2441 | - | 156.5 KB |
SyncArtist | 32.548 μs | 0.2520 μs | 0.2234 μs | 5.1880 | 0.1221 | - | 85.7 KB |
SyncCustomer | 51.803 μs | 0.8022 μs | 0.7503 μs | 3.2959 | 0.0610 | - | 54.49 KB |
SyncEmployee | 8.777 μs | 0.1077 μs | 0.0955 μs | 0.6714 | - | - | 11.15 KB |
SyncGenre | 4.151 μs | 0.0761 μs | 0.0935 μs | 0.7324 | - | - | 12.04 KB |
SyncInvoice | 247.630 μs | 4.6327 μs | 4.3334 μs | 22.9492 | 1.9531 | - | 380.6 KB |
SyncInvoiceLine | 746.863 μs | 14.6254 μs | 31.4828 μs | 134.7656 | 21.4844 | - | 2209.56 KB |
SyncMediaType | 1.036 μs | 0.0202 μs | 0.0320 μs | 0.2003 | - | - | 3.27 KB |
SyncPlaylist | 1.963 μs | 0.0223 μs | 0.0198 μs | 0.3738 | - | - | 6.15 KB |
SyncPlaylistTrack | 2,087.850 μs | 15.3416 μs | 14.3506 μs | 496.0938 | 97.6563 | 97.6563 | 7492.92 KB |
SyncTrack | 2,355.466 μs | 26.4236 μs | 24.7167 μs | 261.7188 | 62.5000 | - | 4311.83 KB |
Compare Versions
Explore the differences between various versions of DbSyncKit to track the evolution of performance and functionality.
For detailed comparisons between different versions, refer to the Get Differences Between Versions page in the documentation.