Комментарии 5
На самый главный вопрос-то не ответили.
Насколько различается самый медленный тип диспетчеризация от самого быстрого? В каких случаях имеет смысл учитывать скорость?
Разница во времени между static и message dispatch может быть кратной, зависит от конкретных условий. Я посчитал важным показать принципиальную разницу между видами и то, почему это влияет на скорость поиска реализации.
Кратной. Но в абсолютных цифрах-то это сколько? наносекунды? десятки наносекунд? сотни? Джуны это читают и потом на собесах категорично заявляют, что динамическую диспетчеризацию нельзя использовать ни в коем случае, потому что она "медленная" ^.^
Такой вывод, конечно же, неверный, и он не следует из статьи, есть случаи, в которых message dispatch незаменим, например, если мы хотим добавить логирование в различные классы, не трогая их самих. Отвечая на ваш вопрос, время на поиск реализации занимает единицы наносекунд и отличается на единицы наносекунд от вида к виду
спасибо, локанично и понятно
Диспетчеризация методов в Swift