Наткнулся на статью C++ всегда быстрее Smalltalk?, в которой в частности утверждается:
«<…> в C++ виртуальные вызовы происходят косвенным образом через таблицу диспетчеризации виртуальных методов. А, как известно, косвенный вызов является очень дорогостоящим на нынешнем поколении процессоров.
В динамических языках, в которых полиморфизм не привязан к иерархии классов/интерфейсов, реализация полиморфного вызова осуществляется совершенно другим образом, намного более эффективным.»
Мне вот теперь интересно, что это за более эффективные реализации, ибо в голову совершенно не приходит никаких идей.
Комментариев нет:
Отправить комментарий