200-600x slower Dlang performance with nested foreach loop

Paul Backus snarwin at gmail.com
Wed Jan 27 01:28:33 UTC 2021


On Tuesday, 26 January 2021 at 23:57:43 UTC, methonash wrote:
>> Using AA's may not necessarily improve performance.  It 
>> depends on what your code does with it.  Because AA's require 
>> random access to memory, it's not friendly to the CPU cache 
>> hierarchy, whereas traversing linear arrays is more 
>> cache-friendly and in some cases will out-perform AA's.
>
> I figured a built-in AA might be an efficient path to 
> performing unique string de-duplication. If there's a more 
> performant method available, I'll certainly try it.

You could try sorting the array first, and then using `uniq` [1] 
to discard duplicate elements. There's an example in the docs 
that shows how to do this in-place (without allocating additional 
memory).

[1] http://phobos.dpldocs.info/std.algorithm.iteration.uniq.html


More information about the Digitalmars-d-learn mailing list