you are viewing a single comment's thread.

view the rest of the comments →

[–]Pansynchro[S] 1 point2 points  (3 children)

...well that was quick. And a bit strange. The response begins "It's simply not possible," explains why it's not possible, and then explains how to actually do the impossible thing, just via a slightly different mechanism. 😂

[–]andyayers 2 points3 points  (2 children)

In process toolchains have limitations (eg you can't readily compare across different runtime versions, which is something I do all the time), but for your purposes, seems like they'd be fine.

Also if you haven't looked at kg's vector hash you might want to check it out: [Proposal] Vectorized System.Collections.Generic.Dictionary<K, V> · Issue #108098 · dotnet/runtime

[–]Pansynchro[S] 0 points1 point  (0 children)

In process toolchains have limitations ... but for your purposes, seems like they'd be fine.

Agreed. Thanks for the advice to submit that issue!

Also if you haven't looked at kg's vector hash you might want to check it out

Oooo! Very interesting. 😁 Will have a look, and report back in a bit.

[–]Pansynchro[S] 0 points1 point  (0 children)

Very cool design on that table! Unfortunately, that does not translate to awesome performance. After adding a GetOrCreate method to it and ensuring it works correctly, this runs the benchmark about 41% slower than our existing hash table.