LINUX.ORG.RU

История изменений

Исправление uin, (текущая версия) :

А как выглядит типичный код интерпретатора?
while((command = get_next()).code != STOP)
implementations[command.code](command);

Такой код и не предполагает оптимизации. Тут значения и вызовы непредсказуемые, любой процессор на таком коде будет больше простаивать, но интерпритаторы и не обещают быстроту.

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

Исходная версия uin, :

А как выглядит типичный код интерпретатора?
while((command = get_next()).code != STOP)
implementations[command.code](command);



Такой код и не предполагает оптимизации. Тут значения и вызовы непредсказуемые, любой процессор на таком коде будет больше простаивать, но интерпритаторы и не обещают быстроту.

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