Abstract
We announced KySync v1.0 yesterday no Hacker News with this white paper.
With the v1.1 release we are rolling out two performance optimizations by @Chaim Mintz.
- Using template parameter instead of
std::function
to facilitate inlining of a lambda;
- Using a weak checksum set with smaller memory footprint to improve caching;
The two optimizations are not related and compound on each other nicely.
In summary, we see:
- 10%-100%+ performance improvement with v1.1 on 2 GiB data and 16 threads;
- A significantly improved single thread performance, now on par with Zsync for 2GiB data.
Performance Setup
We used the same performance testing setup as described in v1.0.
Please refer to it for guidance on how to replicate our results if desired.
Dimensions
- Data Size — we chose 2 GiB as representative data size.
- Similarity — like in v1.0, we tested 0%, 50%, 75%, 90%, 95%, and 100%.
- Threads — like in v1.0, we tested 1, 2, 4, 8, 16, 32, and 64 threads.
- KySync Version — we tested:
- v1.0
- v1.0 with optimization "a"
- v1.0 with optimization "b"
- v1.0 with both optimizations "a" and "b" (we released this as v1.1)
Test Scenarios
We ran the following 174 test scenarios with 5 trials each (for a total of 870 data points).