@Timrus161

Как рассчитать время выполнения программы?

Дан компьютер с процессором определенной частоты.
Как рассчитать сколько времени будет выполняться программа на этом компьютере (при условии, что никакие другие программы выполняться не будут)?
  • Вопрос задан
  • 2357 просмотров
Пригласить эксперта
Ответы на вопрос 4
@vilgeforce
Раздолбай и программист
Никак не рассчитать, пока у вас не будет ОС жесткого реального времени. Ни винда ни линух не гарантируют вам никакого времени выполнения, следовательно все расчеты не имеют смысла.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Взять ассемблерный код программы, для каждой команды по справочнику определить количество тактов, за которые она выполняется. Пройти по коду программы, определив все ветвления и количество проходов каждого цикла. Просуммировать такты всех выполняемых команд, умножить на время выполнения одного такта.
На современных процессорах с вычислительным конвейером расчёт невозможен, так как количество тактов на команду однозначно не определено.
Ответ написан
Комментировать
@MiiNiPaa
Как подозреваю, ваше задание это присвоить взятые (с потолка?) значения различным операций, интерпретировать программу и суммировать "стоимости" всех выполненных операций.
Ответ написан
Комментировать
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Проще измерить с какой-то точностью, чем посчитать. Вроде
$ time some_script
Да и то при условии что нет ветвлений, зависящих от внешних факторов - например ожидание результатов ввода/вывода...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы