perf(traverse): store Ancestor parts as SoA#5284
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @overlookmotel and the rest of your teammates on |
CodSpeed Performance ReportMerging #5284 will not alter performanceComparing Summary
|
|
A 1% perf bump. Perhaps not worth it for the amount of unsafe code. But probably would have more effect for a larger |
Currently, only benchmark |
6e1d8d5 to
45f400a
Compare
870fab0 to
bfdf5ed
Compare
45f400a to
5413584
Compare
bfdf5ed to
7432d25
Compare
5413584 to
9d6e661
Compare
7432d25 to
cdbc60d
Compare
9d6e661 to
1084fa8
Compare
0cf76d5 to
8ecbb8f
Compare
1084fa8 to
dbcedc7
Compare
dbcedc7 to
a58d787
Compare
8ecbb8f to
da8aa18
Compare
a58d787 to
6542e42
Compare
6542e42 to
835256c
Compare
|
If we were going to do this, we'd better off implementing an SoA mechanism which we use everywhere (e.g. |

WIP. This is more of an experiment than anything else, to see what effect it has storing the discriminant and payload of an
enumseparately, in order to reduce memory usage. EachAncestoris stored in 10 bytes, instead of 16.