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

string interning of QualifiedName #2451

Merged
merged 1 commit into from
Dec 8, 2023
Merged

Conversation

quentin
Copy link
Member

@quentin quentin commented Dec 7, 2023

String interning of QualifiedName and switch many associative datastructures to unordered comparison between qualified name. These comparisons had a significant cost on large datalog programs.

A global QNInterner object is responsible for interning of qualified names.

Also fix a performance issue in the RecursiveClauses analysis.

@quentin quentin requested a review from julienhenry December 7, 2023 15:28
julienhenry
julienhenry previously approved these changes Dec 7, 2023
Copy link

codecov bot commented Dec 7, 2023

Codecov Report

Merging #2451 (3afa6b8) into master (2914f7b) will increase coverage by 0.11%.
Report is 27 commits behind head on master.
The diff coverage is 81.12%.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2451      +/-   ##
==========================================
+ Coverage   77.75%   77.86%   +0.11%     
==========================================
  Files         474      481       +7     
  Lines       31164    31935     +771     
==========================================
+ Hits        24232    24867     +635     
- Misses       6932     7068     +136     
Files Coverage Δ
src/FunctorOps.cpp 60.81% <ø> (ø)
src/RelationTag.h 53.03% <ø> (+0.79%) ⬆️
src/ast/Aggregator.cpp 95.65% <100.00%> (+0.19%) ⬆️
src/ast/Aggregator.h 100.00% <ø> (ø)
src/ast/Attribute.h 100.00% <100.00%> (ø)
src/ast/Component.h 100.00% <ø> (ø)
src/ast/IterationCounter.cpp 100.00% <100.00%> (ø)
src/ast/Lattice.h 100.00% <100.00%> (ø)
src/ast/Program.h 100.00% <ø> (ø)
src/ast/QualifiedName.h 100.00% <100.00%> (+5.88%) ⬆️
... and 119 more

... and 11 files with indirect coverage changes

fix perf issue in RecursiveClauses
@quentin quentin merged commit c8edcc1 into souffle-lang:master Dec 8, 2023
30 checks passed
quentin added a commit to quentin/souffle that referenced this pull request Jun 19, 2024
String interning of `QualifiedName` and switch many associative datastructures to unordered comparison between qualified name. These comparisons had a significant cost on large datalog programs.

A global `QNInterner` object is responsible for interning of qualified names.

Also fix a performance issue in the `RecursiveClauses` analysis.
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.

2 participants