Добрый вечер! Предлагаю вашему вниманию отрывок статьи:
С измерением времени работы программы в многозадачной операционной системе, какой является Windows, связаны определенные трудности. Они обусловлены тем, что процессор всегда выполняет несколько процессов (программ) «одновременно». Таким образом, если мы просто замерим время работы нашей программы, то в этот интервал попадут и какие-то другие процессы. Схематично это можно представить следующим образом:
Пусть на однопроцессорном компьютере активно выполняются 5 процессов (программ). Процессор в некотором порядке выполняет все эти программы – по одной в каждый интервал времени. Наша программа (процесс 2) запомнила значение времени до замеряемого участка кода, а потом после него, и вычислила временной интервал. На рисунке видно, что в этот интервал также попали и другие процессы, время исполнения которых нам совершенно не нужно измерять. Необходимо различать следующие времена, которые можно получить с помощью различных функций: • Системное время – время, одинаковое для всех программ, работающих на данном компьютере. Функция clock(), например, возвращает значение относительно системного времени, поэтому оно содержит «лишнее» время работы посторонних процессов. Минимизировать это «лишнее» время можно, если во время замера убрать все другие программы, «съедающие» процессорное время. • Время процесса – время, которое было потрачено на выполнение конкретного процесса (программы). По сути, именно его желательно получить. Для определения времени процесса в многозадачных операционных системах существуют различные библиотечные функции, специфичные для данной конкретной операционной системы.
У меня возникает вопрос: Как посчитать время процесса в windows, если я компилирую в Borland turbo C++ 3.1(ОС windows) ?
|