Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance overhaul for table.update() #574

Merged
merged 7 commits into from
May 13, 2019
Merged

Performance overhaul for table.update() #574

merged 7 commits into from
May 13, 2019

Conversation

texodus
Copy link
Member

@texodus texodus commented May 13, 2019

This PR contains a number of fixes applied as a result of some runtime profiling of the table.update() mechanism:

  • Removed std::unordered_map in favor of tsl::hopscotch_map, which improves primary key lookup performance, and overall update processing time is improved by 50%.
  • Added throttling to this method. This means that on_update() is no longer called 1:1 with calls to update() (though the final on_update() will always be consistent with table state). As a result, update() calls will no longer stack up and overwhelm other API calls, which leads to drastic improvement in perceived performance, and much smarter interleaving of update() and other calls which reflect the view() to the <perspective-viewer> element.

Additionally, a few other enhancements have been made which facilitated these principal fixes:

  • Benchmarks now mark outlier observations (more accurate benchmarks).
  • CMake executable builds are now parallelized (faster builds).
  • yarn test now respects -t in focus mode (faster test iteration).

@texodus texodus merged commit 61bacb5 into master May 13, 2019
@texodus texodus deleted the rt-perf branch May 13, 2019 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants