tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David kerber <dcker...@verizon.net>
Subject Re: Performance: switch vs if ... else if
Date Thu, 21 May 2009 17:57:44 GMT
Christopher Schultz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> David,
>
> On 5/19/2009 3:04 PM, David kerber wrote:
>   
>> I have a section of code in a frequently-called (~3.5 million times
>> per day) servlet where I had to process based on a parameter that
>> could take one of 6 different single-character string values.  I had
>> been using an if .. else if construct.  Then I discovered that java
>> 1.5 allowed constructing a switch on strings.  So I did some speed
>> testing of a standalone java class that compared the 6-option switch
>> that vs my 6-step if/elseif.
>>     
>
> I'd be interested to see what the bytecode looks like. Javac compiles
> switch statements (using primitives) to one of two bytecodes:
> lookupswitch or tableswitch. If you can get the compiler to generate a
> tableswitch, your performance will increase dramatically due to the way
> the bytecode works.
>
> See
> http://java.sun.com/docs/books/jvms/second_edition/html/Compiling.doc.html#14942
> for more information on these bytecodes.
>   
Interesting.  From that description, depending on how sparse is 
"sparse", there's probably a good chance I'm getting a tableswitch.  Can 
you point me to a byte code interpreter so I could look at this?  Or I 
could just send you the .class file of my test class if you'd prefer.

D




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message