Насколько я понял, было два вопроса.Оптимизация и if / switch.
Прежде всего, оптимизация кода является дорогостоящим процессом.Оптимизируйте только те части кода, которые очевидны.Я сомневаюсь в этом в этом случае.Похоже, вы отправляете текстовый идентификатор для принятия решения, что делать с сообщением.Откуда пришло сообщение?IPC, XML, файл?Что вы собираетесь делать с этим сообщением?Насколько эффективен код обработки содержимого сообщения?В коде должны быть места, которые требуют больше ресурсов, чем сравнение строк.
Вы пробовали некоторые анализаторы производительности, такие как Purify, gperf, cachegrind?
Что касается if / switch: switch работает толькоцелочисленных типов.(char, short, int, long, enum)