vftable снижение производительности по сравнению с оператором переключения

Вопрос по C ++. У меня есть система, в которой у меня будут сотни мини-подклассов данного суперкласса. У всех будет метод "foo", который что-то делает. Или ... у меня будет один класс с целым числом под названием "тип" и используйте гигантский оператор switch, чтобы решить, что делать, когда я foo.

Производительность здесь очень важна. Чрезвычайно важно.

Вопрос в том, каковы преимущества / недостатки производительности при использовании оператора switch по сравнению с разрешением C ++ делать это через vftable? Если у меня он используется в качестве оператора switch, я могу поместить часто встречающийся foo вверху оператора switch, а менее распространенный - внизу, надеясь сократить сравнение. Попытка получить такой эффект с vftable обязательно будет зависеть от компилятора, даже если я смогу понять, как это сделать ...

С другой стороны, с моим кодом было бы намного легче справиться без этих уродливых операторы переключения.

28
задан eeeeaaii 17 December 2010 в 03:45
поделиться