DbSyncKit Performance

Performance Comparison

Package Versions: 0.2 vs 0.3 vs 1.0 vs 1.1 vs 1.2

The following table presents a comparison of mean execution times (in microseconds) for each table across different package versions: 0.2, 0.3, 1.0,1.1, and the latest 1.2 release. The values illustrate the observed performance differences between these versions.

Table Mean v0.2 Mean v0.3 Mean v1.0 Mean v1.1 Mean v1.2
Album 403.85 µs 300.564 µs 114.036 µs 96.939 µs 67.506 μs
Artist 284.72 µs 209.709 µs 86.862 µs 76.872 µs 32.548 μs
Customer 219.93 µs 115.595 µs 41.809 µs 32.264 µs 51.803 μs
Employee 64.85 µs 23.193 µs 6.749 µs 6.552 µs 8.777 μs
Genre 44.13 µs 28.123 µs 12.807 µs 10.821 µs 4.151 μs
Invoice 869.78 µs 543.679 µs 163.092 µs 141.017 µs 247.630 μs
InvoiceLine 3,690.57 µs 2,573.884 µs 1,122.499 µs 917.182 µs 746.863 μs
MediaType 11.85 µs 6.954 µs 4.687 µs 4.180 µs 1.036 μs
Playlist 33.51 µs 17.250 µs 8.547 µs 7.875 µs 1.963 μs
PlaylistTrack 15,675.30 µs 15,745.778 µs 10,863.654 µs 9,968.597 µs 2,087.850 μs
Track 8,444.76 µs 5,323.978 µs 2,247.052 µs 1,750.159 µs 2,355.466 μs
Note: 1 microsecond (µs) is equal to 0.000001 seconds.

Details of Benchmark Analysis

The benchmarking analysis was conducted utilizing BenchmarkDotNet v0.13.11 on Windows 10 (Version: 10.0.19045.3803, Build: 22H2/2022Update) platform. The system employed an AMD Ryzen 7 7700X processor, equipped with 1 CPU, 16 logical cores, and 8 physical cores. The benchmarking process was performed using .NET SDK version 8.0.100.

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

Performance Graph

Comparison of performance metrics for different tables across versions (excluding SQL query generation time).

Data Source

The benchmark results are obtained using the DbSyncKit library with the Chinook database as the data source. The Chinook database has been used for comparison purposes, and some edits may have been made to the original data for testing and optimization purposes. Please note that the benchmark results may vary based on the specific configuration and data characteristics of your environment.

Additionally, for database migration testing, the following migration links are provided:

Child Pages

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.

Version 1.1.x

DbSyncKit Version 1.1.x has been rigorously tested for performance across various scenarios, showcasing improved efficiency and responsiveness with increased overall performance.

Version 1.0.x

Performance testing across diverse scenarios was conducted on DbSyncKit Version 1.0.x, highlighting significant enhancements in responsiveness, efficiency, and overall increased performance.

Version 0.3.x

DbSyncKit v0.3.x achieves enhanced performance through optimized caching methods and a streamlined CacheManager for clarity.

Version 0.2.x

Version 0.2.x, a bug-free release, introduced DB Cross Migration, MYSQL Syncing Provider, and adopted Fluid Templating, enhancing overall performance.