@eatmypants

Как вычилисть время выполнения функции без прямого исполнения этой же функции?

Есть функция с вычислением числа Фибоначчи рекурсией.

int fib(n) {
 if (n<= 2) return 1
 else return fib(n-1) + fib(n-2);
}


Нужно вычислить примерное время исполнения этой функции, если к примеру n = 100.
  • Вопрос задан
  • 2344 просмотра
Решения вопроса 1
GavriKos
@GavriKos
Время без прямого исполнения - по сути никак. Только сложность. Можете конечно перевести ее в ассемблер, посчитать количество операций, принять что за 1 такт выполняется 1 операция (что тоже является очень грубым допущением) и дальше зная частоту процессора получить время. Но это все будет очень приблизительно. И на практике время выполнения функции будет всегда больше, причем насколько - зависит от множества параметров. Не забудьте еще разные оптимизации, другие более приоритетные вещи в ОС и процессах и т.д.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
Время - никак: неизвестно на какой машине, неизвестно на какой ОС, неизвестно на каком языке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы