Detecting performance pitfall in array access

kinke noone at nowhere.com
Sun May 17 11:39:30 UTC 2020


On Sunday, 17 May 2020 at 03:30:57 UTC, Adnan wrote:
> In my machine, if you feed "aa" and "bbc" to the function, ldc 
> generated code takes around  400 microseconds. I don't have an 
> access to gdc in my machine.
>
> https://imgshare.io/image/NN8Xmp
>
> Full code:
>     D : https://run.dlang.io/is/vLj7BC
>   Nim : https://play.nim-lang.org/#ix=2mhH (for reference)
>
> Compiler flags:
>     dub : build -b release-nobounds
>  nimble : --d:danger

My timings are very different, using LDC v1.21 on Win64:

* ldc2 -O -release -run bla.d aa bbc: 8-9 μs
* ldc2 -O -release -boundscheck=off -run bla.d aa bbc: 8-9 μs
* ldc2 -O -release -boundscheck=off -flto=full 
-defaultlib=phobos2-ldc-lto,druntime-ldc-lto -run bla.d aa bbc: 4 
μs

DMD v2.091:
* dmd -m64 -O -release -boundscheck=off -run ..\speed.d aa bbc: 
~11 μs

As a side note, using jagged arrays for multiple dimensions 
should probably be avoided whenever you can.


More information about the Digitalmars-d-learn mailing list