Как рассчитать время выполнения программы?
Никак не рассчитать, пока у вас не будет ОС жесткого реального времени. Ни винда ни линух не гарантируют вам никакого времени выполнения, следовательно все расчеты не имеют смысла.
Взять ассемблерный код программы, для каждой команды по справочнику определить количество тактов, за которые она выполняется. Пройти по коду программы, определив все ветвления и количество проходов каждого цикла. Просуммировать такты всех выполняемых команд, умножить на время выполнения одного такта.
На современных процессорах с вычислительным конвейером расчёт невозможен, так как количество тактов на команду однозначно не определено.