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