Conversation
If we ever need them we can add them, but this is just going to make things go a little faster here.
|
It turns out my benchmarks from #1 were wrong, I had accidentally left debug assertions on in release mode (I was debugging another issue and forgot to turn them back off afterwards). The std BTreeMap wasn't affected. Here are a new set of benchmark results with debug assertions disabled. std BTreeMap: arena BTreeMap #1 arena BTreeMap #2 So it seems that (at least in my case) #2 has no performance difference compared to the std BTreeMap while #1 is about 5% slower (rather than 20% as previously reported). |
|
Interesting to note from your numbers: Option 1, with
Option 2, with borrows (i.e., real 64-bit pointers) and a
I've found the I'm curious if the |
|
What is strange is that in regalloc2 (bytecodealliance/regalloc2#88), #1 is much faster than both std and #2 (which seem to have similar performance bytecodealliance/regalloc2#92). Perhaps regalloc2 is much more cache-bound than my benchmark and the |
|
Using |
25350d9 to
1839826
Compare
1839826 to
0ae687f
Compare
Alternative to #1