Switch implementation

Jonathan M Davis jmdavisProg at gmx.com
Tue Sep 28 16:27:18 PDT 2010


On Tuesday, September 28, 2010 15:46:01 Iain Buclaw wrote:
> Out of curiousity, I thought I might give a good stress test a try.
> 
> Specs of my machine:
> 
> Samsung N110, 2.1GHz Intel Atom, 2GB Memory.
> 
> Code looks like this: It's a switch statement with 20,000 cases.

The real question though isn't worst case performance but rather average 
performance. 20,000 cases is totally unrealistic. 100 cases would be rare. 10 is 
probably the most that you get in most code, though obviously there are cases 
where you'd get quite a few more. If dmd produced code that was very efficient for 
the average case but horrible for the worst case, I think that that would be 
fare better than producing code that was mediocre for the average case and good 
for the worst case. Of course, if it was determined that a particular algorithm 
worked well in smaller cases and another in larger cases, then you could just 
have the compiler use the algorithm that works best for the number of case 
statements that you have, but regardless, while how fast switch statements are 
with an insane numbers of case statements may be interested, it's nowhere near 
as relevant as how fast they are with a relatively small number. Whether there's 
any relation between the speed with a small number of case statements and the 
speed with a large number is something that would have to be verified before 
20,000 cases becomes particularly relevant, much as it would be theoretically 
nice if having 20,000 case statements were efficient.

- Jonathan M Davis


More information about the Digitalmars-d mailing list