Version 1.2.x

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

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.