В производительности компьютера длина пути инструкции — это количество инструкций машинного кода , необходимых для выполнения раздела компьютерной программы . Общую длину пути для всей программы можно считать мерой производительности алгоритма на конкретном компьютерном оборудовании . Длина пути простой условной инструкции обычно считается равной 2, одна инструкция выполняет сравнение, а другая — выполняет переход, если определенное условие удовлетворено. Время выполнения каждой инструкции обычно не учитывается при определении длины пути, поэтому длина пути является просто показателем относительной производительности, а не абсолютной в каком-либо смысле.
При выполнении тестовой программы большая часть пути инструкции обычно находится внутри внутреннего цикла программы .
До появления кешей длина пути была приближением времени выполнения, но в современных процессорах с кешем это может быть гораздо худшее приближение: некоторые инструкции загрузки выполняли сотни циклов, когда данных нет в кеше, или порядка в кеше (даже та же инструкция в другом раунде цикла).
Поскольку между ассемблерными инструкциями и машинными инструкциями обычно существует связь «один к одному» , длину пути инструкции часто принимают за количество ассемблерных инструкций, необходимых для выполнения функции или определенного раздела кода. Выполнение простого поиска в таблице в несортированном списке из 1000 записей может потребовать около 2000 машинных инструкций (в среднем, при условии равномерного распределения входных значений), тогда как выполнение того же поиска в отсортированном списке с использованием алгоритма двоичного поиска может потребовать всего около 40 . машинные инструкции, очень значительная экономия. Выраженный в терминах длины пути инструкции, этот показатель будет уменьшен в этом случае в 50 раз — причина, по которой фактическое время выполнения инструкций может быть второстепенным фактором по сравнению с хорошим выбором алгоритма , требующего более короткой длины пути.
Длина пути инструкции программы на языке ассемблера обычно сильно отличается от количества исходных строк кода для этой программы, поскольку длина пути инструкции включает только код в исполняемом потоке управления для данного ввода и не включает код, который не является актуально для конкретного ввода или недостижимого кода .
Поскольку один оператор, написанный на языке высокого уровня, может создавать несколько машинных инструкций с переменным числом, не всегда возможно определить длину пути инструкции, например, без симулятора набора команд, который может подсчитывать количество «выполненных» инструкций во время выполнения. моделирование. Если язык высокого уровня поддерживает и при необходимости создает «список ассемблеров», иногда можно оценить длину пути инструкции, исследуя этот список.
Из вышесказанного можно понять, что можно использовать знание длин путей команд: