Главным образом:
- Пропускная способность шины памяти
- инструкций процессора за цикл
Ограничивающим фактором может быть то, сколько памяти ЦПУ может получить доступ в секунду. Это зависит от алгоритма и того, насколько большой частью работы является доступ к памяти. Кроме того, какие части памяти, к которым осуществляется доступ, будут влиять на то, насколько хорошо работает кэш памяти.
В настоящее время время выполнения команд измеряется не тем, сколько циклов занимает инструкция, а тем, сколько инструкций может быть выполнено в одном цикле. Препроцессор в CPU выстраивает несколько команд для параллельного выполнения, поэтому это зависит от того, сколько параллельных линий имеет CPU и насколько хорошо код может быть распараллелен. Как правило, большое количество условных ветвлений в алгоритме затрудняет распараллеливание.