Closed gapisback closed 6 months ago
Name | Link |
---|---|
Latest commit | 0f557fafe0aa4a01688accbf69d0c0cb4890e781 |
Latest deploy log | https://app.netlify.com/sites/splinterdb/deploys/65b043c6093a94000862fc4e |
@rtjohnso - The CI-jobs have completed. There are small improvements in run-times of BTree-related tests with these changes, as shown below. We have other CI-jobs run for PR #606 without this fix:
The 'gains' are similar to what were seen with manual execution of test.sh
on Nimbus-VMs.
In debug-build test runs, profiling shows interfaces like clockcache_page_size(), clockcache_config_page_size() bubbling up to top of 'perf top' output. This commit attempts to reduce multiple calls to lookup functions to retrieve the page-size, by caching the page-size once per function where it's used multiple times.
The affected interfaces are: btree_page_size(), clockcache_page_size(), cache_page_size(), cache_config_page_size(), trunk_page_size() and few similar ones.
These changes add up to saving few seconds of test-execution (out of few mins of run-time) in debug-build mode, esp for BTree-related tests.
Empirical performance test results: Running slow tests using
test.sh
on Nimbus-VM:With
/main
:With this fix:
There is no earth-shattering gains to be had, but we knock-off about several 10s of seconds of execution times in a test-run taking about 10 mins (for example).
Overall test-execution run-time drops by about 6-7 mins, gain of about 5% overall.