| From | Sent On | Attachments |
|---|---|---|
| Randall R Schulz | Dec 3, 2007 3:41 pm | |
| Stand Trooper | Dec 3, 2007 4:03 pm | |
| Randall R Schulz | Dec 3, 2007 4:07 pm | |
| Stand Trooper | Dec 3, 2007 4:34 pm | |
| Russel Winder | Dec 3, 2007 9:46 pm | |
| Russel Winder | Dec 3, 2007 9:49 pm | |
| Charles Oliver Nutter | Dec 3, 2007 9:52 pm | |
| Randall R Schulz | Dec 3, 2007 10:10 pm | |
| Jochen Theodorou | Dec 4, 2007 5:59 am | |
| Charles Oliver Nutter | Dec 4, 2007 10:59 am | |
| Jochen Theodorou | Dec 4, 2007 11:51 am | |
| Smith, Jason, CTR, OASD(HA)/TMA | Dec 4, 2007 1:10 pm | |
| Charles Oliver Nutter | Dec 4, 2007 1:24 pm | |
| Charles Oliver Nutter | Dec 4, 2007 1:29 pm | |
| Jochen Theodorou | Dec 4, 2007 1:54 pm | |
| Smith, Jason, CTR, OASD(HA)/TMA | Dec 4, 2007 2:33 pm | |
| Jochen Theodorou | Dec 4, 2007 2:44 pm | |
| Charles Oliver Nutter | Dec 4, 2007 2:56 pm | |
| Smith, Jason, CTR, OASD(HA)/TMA | Dec 5, 2007 6:35 am | |
| Charles Oliver Nutter | Dec 5, 2007 10:16 am | |
| Smith, Jason, CTR, OASD(HA)/TMA | Dec 5, 2007 10:29 am | |
| Jochen Theodorou | Dec 5, 2007 5:45 pm | |
| Jochen Theodorou | Dec 7, 2007 8:31 am | |
| Randall R Schulz | Dec 7, 2007 8:37 am | |
| Jochen Theodorou | Dec 7, 2007 8:49 am | |
| Guillaume Laforge | Dec 7, 2007 9:01 am | |
| Jochen Theodorou | Dec 7, 2007 9:14 am | |
| Guillaume Laforge | Dec 7, 2007 9:16 am | |
| Randall R Schulz | Dec 7, 2007 9:22 am | |
| Guillaume Laforge | Dec 7, 2007 9:28 am | |
| Charles Oliver Nutter | Dec 7, 2007 10:09 am | |
| Charles Oliver Nutter | Dec 7, 2007 10:11 am | |
| Randall R Schulz | Dec 7, 2007 10:18 am | |
| Jochen Theodorou | Dec 7, 2007 10:31 am | |
| Charles Oliver Nutter | Dec 7, 2007 12:23 pm | |
| Randall R Schulz | Dec 7, 2007 12:37 pm | |
| Charles Oliver Nutter | Dec 7, 2007 1:35 pm | |
| Randall R Schulz | Dec 7, 2007 1:40 pm | |
| Gavin Grover | Dec 7, 2007 11:49 pm | |
| Jochen Theodorou | Dec 8, 2007 3:40 am |
| Subject: | Re: [groovy-user] Acceptable Placement of default: Within Switch? | |
|---|---|---|
| From: | Charles Oliver Nutter (char...@sun.com) | |
| Date: | Dec 4, 2007 1:29:23 pm | |
| List: | org.codehaus.groovy.user | |
Smith, Jason, CTR, OASD(HA)/TMA wrote:
Charlie, I believe you are misusing Big O notation in this case. For small values of n, the constants outweigh the multiplier. 10 * log(4) is greater than 1 * (4). What you are saying is absolutely true if your switch statements end up being 50 or 100 or 500 statements long, assuming that a binary or hash search can be used in such extreme cases. But for a set of simple comparisons, say, 10 long, your average case will be 5 (big assumption). Is that faster than 3 or 4 comparisons, plus associated overhead? The hash code is probably faster (maybe - that's an amortized analysis), but there is still overhead there.
I could be convinced otherwise. For practical purposes, I would have to see benchmarks in regular production apps that showed this was a significant part of execution time (which I have doubts about) and that adopting a different algorithm would improve things significantly. Ref: http://en.wikipedia.org/wiki/Amdahl's_law - Speedup in a Sequential Program
It's certainly true that this depends on the size of n, but hell, why can't you do some optimizations when they're valid and not when not? I don't understand why you'd only compile it one way--the slowest possible way--when there's a valid alternative for many constant cases. Even Java compiles switches two different ways depending on case density.
- Charlie





