Стоимость сообщения диспетчеризирует в Objective C

Просто удалите $ {user.home} /. M2 / repository / org / apache / maven / archetypes, чтобы обновить все необходимые файлы, для меня это работает нормально!

5
задан U62 25 May 2009 в 19:47
поделиться

2 ответа

Сообщения Objective C очень быстрые. Скорость сравнима с вызовами виртуальных методов C ++, хотя и не так быстро. Избегать передачи сообщений - это определенно преждевременная оптимизация. Возможно, вы не захотите делать много этого во внутреннем цикле, но выбранные вами алгоритмы и другие факторы будут иметь гораздо большее влияние на скорость вашего кода. Если он слишком медленный, воспользуйтесь профилировщиком и продолжайте.

14
ответ дан 18 December 2019 в 08:31
поделиться

Во-первых, я бы использовал для этого функцию C, fabs (). В остальном может хорошо работать написание простых встроенных функций C для небольших вспомогательных случаев. Использование методов для удобства, а не для сдержанного поведения, может быть признаком плохого дизайна. Производительность еще даже не входит.

Далее, компилятор не может оптимизировать вызов метода. Это динамический язык, вызов не разрешается до выполнения. Различные методы Objective-C могут предотвратить любую попытку компилятора сделать это.

Во время выполнения нет разницы между вызовом метода по «id» и типизированным указателем - они проходят через один и тот же механизм.

Наконец, если вы думаете о характеристиках производительности перед измерением, вы уже преждевременно оптимизируете. Который' Я не хочу сказать, что это никогда не уместно, как некоторые думают, но обычно это так. В этом случае, я думаю, если вы поставите дизайн на первое место, вы, вероятно, в любом случае получите достаточно приличный профиль производительности. При необходимости измеряйте и оптимизируйте позже.

5
ответ дан 18 December 2019 в 08:31
поделиться