Help optimize D solution to phone encoding problem: extremely slow performace.

evilrat evilrat666 at gmail.com
Fri Jan 19 17:18:36 UTC 2024


On Friday, 19 January 2024 at 16:55:25 UTC, ryuukk_ wrote:
>
> You do hash map lookup for every character in D, it's slow, 
> whereas in Rust you do it via pattern matching, java does the 
> same, pattern matching
>
>
> Yet another reason to advocate for pattern matching in D and 
> switch as expression

There is another important difference, i quickly looked up D 
associative array implementation and the search looks like 
nlog(n) complexity with plain loop iteration of hashes, whereas 
rust's implementation is using "swisstable" algorithm 
implementation that has packed SIMD optimized lookups, this is 
likely where the 3x speed difference comes from.

Tried to look up rust implementation and it is SOOO generic that 
I was unable to decipher it to find the actual key search and 
stores.

Anyway here is an interesting article about rust implementation
https://faultlore.com/blah/hashbrown-tldr/


More information about the Digitalmars-d-learn mailing list