Когда вы программируете на ассемблере (машинный код), вы знаете, сколько циклов процессора использует каждая инструкция, поэтому вы заранее знаете, сколько времени займет процедура.
Однако, если вы используете язык высокого уровня, который компилируется (компиляция - это перевод в машинный код), тогда становится более неопределенным, сколько времени может занять процесс. Кроме того, существует зависимость способности компилятора оптимизировать конечный код в соответствии с типом используемого процессора.
Неоптимизированный код означает больше циклов ЦП для выполнения той же задачи.