Как Rust реализует трейт-объекты и почему dyn Trait медленнее дженериков
Спросите разработчика: «Почему dyn Trait медленнее дженериков?», в 9 из 10 случаях услышите: «Потому что косвенный вызов через vtable». Один дополнительный переход по указателю, промах по кешу, вот и вся разница. Звучит убедительно, и кстати процентов на десять правда.Настоящая цена динамической диспетчеризации не в...
Спросите разработчика: «Почему dyn Trait медленнее дженериков?», в 9 из 10 случаях услышите: «Потому что косвенный вызов через vtable». Один дополнительный переход по указателю, промах по кешу, вот и вся разница. Звучит убедительно, и кстати процентов на десять правда.Настоящая цена динамической диспетчеризации не в самом прыжке через vtable, а в том, что этот прыжок прячет от оптимизатора. LLVM видит непрозрачный call по указателю и пасует. Не может встроить тело, не может раскрутить цикл, не может протащить константу через границу вызова. Один косвенный вызов и целый каскад оптимизаций становится невозможным.Но чтобы понять, почему так происходит, нужно сначала разобраться, как dyn Trait устроен внутри. Что лежит в этом толстяке, как выглядит vtable в памяти, и чем всё это отличается от того, что делает компилятор с дженериками.
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
[Перевод] Почему мы ещё не нашли сигналы инопланетной жизни? Интервью с астрономом
Вселенная остаётся безмолвной. Несмотря на десятки лет поисков, мы ещё ни разу не обнаружили сообщений от нечеловеческих форм жизни. Одно из потенциальных объяснений этого предл...
Производящая функция моментов: что это и как она используется в анализе распределений
Производящая функция моментов (moment-generation functions) - это функция, которая служит альтернативным способом задания распределения вероятностей случайной величины.
Инженерия найма: причины карго-культа
Найм окончательно сломан. На него ругаются и кандидаты, и рекрутеры. А ещё постоянно винят в проблемах друг друга. Вот только найм сломан очень давно. И есть целый ряд историчес...
Конец дешёвых ПК и мировой кризис. Придётся экономить
Подорожание комплектующих изменило рынок. Тут происходит много странных на первый взгляд явлений: выходят ноутбуки с процессорами от телефонов (!?), появляются материнки на стар...
Особенности и ловушки модели памяти в Go: тайны синхронизации. Часть 1
Большинство программистов, работая с многопоточным кодом, осведомлены о примитивах синхронизации. При этом мало кто задумывается о существующей за этим сложной теории.Привет, Ха...
Практика автоматизации 1С — какие темы Инфостарт разбирает на апрельских вебинарах
В апреле у Инфостарта идет серия бесплатных вебинаров по автоматизации процессов в 1С. С фокусом на практические сценарии: производство, инфраструктура, аналитика, документообор...
Похожие статьи
Еще материалы, которые пересекаются по тегам, источнику или категории.
[Перевод] Почему мы ещё не нашли сигналы инопланетной жизни? Интервью с астрономом
Вселенная остаётся безмолвной. Несмотря на десятки лет поисков, мы ещё ни разу не обнаружили сообщений от нечеловеческих форм жизни. Одно из потенциальных объяснений этого предл...
Производящая функция моментов: что это и как она используется в анализе распределений
Производящая функция моментов (moment-generation functions) - это функция, которая служит альтернативным способом задания распределения вероятностей случайной величины.
Инженерия найма: причины карго-культа
Найм окончательно сломан. На него ругаются и кандидаты, и рекрутеры. А ещё постоянно винят в проблемах друг друга. Вот только найм сломан очень давно. И есть целый ряд историчес...
Конец дешёвых ПК и мировой кризис. Придётся экономить
Подорожание комплектующих изменило рынок. Тут происходит много странных на первый взгляд явлений: выходят ноутбуки с процессорами от телефонов (!?), появляются материнки на стар...
Еще материалы от Habr
Свежие публикации и продолжение темы от той же редакции.
[Перевод] Почему мы ещё не нашли сигналы инопланетной жизни? Интервью с астрономом
Вселенная остаётся безмолвной. Несмотря на десятки лет поисков, мы ещё ни разу не обнаружили сообщений от нечеловеческих форм жизни. Одно из потенциальных объяснений этого предл...
Производящая функция моментов: что это и как она используется в анализе распределений
Производящая функция моментов (moment-generation functions) - это функция, которая служит альтернативным способом задания распределения вероятностей случайной величины.
Инженерия найма: причины карго-культа
Найм окончательно сломан. На него ругаются и кандидаты, и рекрутеры. А ещё постоянно винят в проблемах друг друга. Вот только найм сломан очень давно. И есть целый ряд историчес...
Конец дешёвых ПК и мировой кризис. Придётся экономить
Подорожание комплектующих изменило рынок. Тут происходит много странных на первый взгляд явлений: выходят ноутбуки с процессорами от телефонов (!?), появляются материнки на стар...