| 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:24:58 pm | |
| List: | org.codehaus.groovy.user | |
Jochen Theodorou wrote:
Charles Oliver Nutter schrieb:
Jochen Theodorou wrote:
if you do a micro benchmark of the performance between the to switch forms in Java (in bytecode) you will most probably not see a big difference between them. and they will probably behave just the same as a normal if-else cascade. Of course this is onlytrue on certain VMS, on others it is faster/slower, ut by such a small amount... its not worth it I say.
My understanding was that Groovy's switch is not a binary search, but a series of invoke/compare/jumps. That would be considerably slower than a direct jump table or a binary search. CS 101: a series of ifs will be O(n), a binary search will be O(log n), and table lookup O(1). table lookup is faster, so I believe it would be worth it.
ok, let us do less speculation and more concrete talk. There are three ways to implement a switch case.
So implement three different ways in the compiler; I don't see why the compiler has to emit only one form of switch in all cases. When you can optimize it to a jump table, do so.
JRuby has all sorts of places where it compiles code differently depending on how it's structured and what optimizations are valid in a given context, and this alternate switch logic will just be one more.
- Charlie





