Performance of tables slower than built in?
Alex
AJ at gmail.com
Thu May 23 10:16:42 UTC 2019
On Wednesday, 22 May 2019 at 08:25:58 UTC, Basile B. wrote:
> On Wednesday, 22 May 2019 at 00:22:09 UTC, JS wrote:
>> I am trying to create some fast sin, sinc, and exponential
>> routines to speed up some code by using tables... but it seems
>> it's slower than the function itself?!?
>>
>> [...]
>
> Hi, lookup tables ARE faster but the problem you have here, and
> I'm surprised that nobody noticed it so far, is that YOUR
> SWITCH LEADS TO A RUNTIME STRING COMPARISON AT RUNTIME. Just
> replace it with a static if (Method = "Linear") { /*...*/} else
> { /*...*/}
>
> Also takes care to the type used. With DMD the implicit
> coercion of float and double can lead to extra conversions.
>
> You'll directly see a 15% gain after refactoring the switch.
Surely not?!?! Surely the compiler can optimize that switch since
the value passed is CT? I thought the whole point of not having
static switch(analogous to static if) was because it would go
ahead and optimize these cases for us... and it's just a switch,
just a jmp table.
More information about the Digitalmars-d-learn
mailing list