[SDL] Re: BeOS and SDL
Mattias Engdegård
f91-men at nada.kth.se
Thu Aug 3 14:10:04 PDT 2000
>> My only question, how fast is inheritance compared to a switch?
>
>Inheritance is faster than a switch, usually. Inheritance works like
>function pointers, there is a small overhead, but the decision-making is
>all done at once (when the object is created).
Most modern CPUs do a fair job on predicting branches, but most do not
at all as well in the indirect function call prediction business.
(Most tests I've done confirm this.)
When you compare a switch to a virtual function call (which is basically
a indirect function call + the cost of fetching the pointer from the vtbl),
it depends on what code is emitted for the switch, how many branches etc.
Compilers often emit branch trees and/or jump tables for switches,
depending on the number and distribution of the case labels.
So the right answer is the one you don't want: "It depends" :-)
More information about the SDL
mailing list