Причина, по которой я беспокоюсь о производительности, заключается в том, что я изменяю элементы пользовательского интерфейса, которые пользователь видит как конечный результат этих вычислений, и я не хочу, чтобы это ощущалось вялым.
Итак ... вы выполняете множество операций с графическим интерфейсом, которые включают в себя перекомпоновку и перерисовку множества вещей, и вы беспокоитесь о производительности оператора if / else?
Графические операции вприложения огромные потребители процессорных циклов.На порядки больше циклов будет потребляться во время рисования в ответ на графическое изменение по сравнению, скажем, с вызовом objectForKey:
и вызовом hash
(что и подразумевается при поиске в словаре).
Измерьте производительность вашего приложения.Выясните, почему это вяло.Затем исправьте проблему.
Первым шагом будет использование инструмента выборки ЦП, чтобы увидеть, куда идут эти циклы.
Если это не поможет, используйте один из различных графических эффектов.инструменты анализа, чтобы определить, не является ли это вашим узким местом.
Также легко может случиться так, что вы делаете что-то несколько раз, что нужно сделать только один раз;может быть, ваш код отслеживания взаимодействия с пользователем заставляет пользовательский интерфейс многократно перестраиваться, когда это нужно сделать только один раз (я только что исправил именно такую проблему с производительностью в приложении, над которым я работаю).