[nycphp-talk] Switch-Case v. if/else
Hans Zaunere
lists at zaunere.com
Thu May 14 16:49:40 EDT 2009
> Does anyone know how the PHP Interpreter pulls switch/case statements
> together? Does it emulate a C compiler and, for larger case sets,
> build a huge if/else cascade? Does it do this always? Is there any way
Since PHP isn't really compiled, there are some inefficiencies when compared
with something like C. I don't remember the exact mechanics, but switch is
generally slower than if/else and less optimizable (word?) when it comes to
opcode caching/etc..
> to know when it builds a jump table (like a s/c is supposed to)? I've
> got a slow script (it's eating ~85% of execution time) that I can't
> work around and one of the slower parts is a switch case (which is
> slightly faster than manually building an if/else cascade) and was
> wondering if anyone had any performance tips for cases like these.
How many cases do you have? Could you refactor into a loop? Are you doing
string comparisons, or can they be converted to numeric tests? Could some
of the logic be reduced/spread out into a database or some other process?
H
More information about the talk
mailing list