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 |
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:
- For MSSQL: MSSQL Migrations
- For MySQL: MySQL Migrations
- For PostgreSQL: PostgreSQL Migrations
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.