Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwww.ssd.sscc.ru
1 Функции замера времени
2 Назначение функций замера времени Функции замера времени необходимы для оценки эффективности работы алгоритма, процессора, памяти, файловой системы, сети …
3 Методика тестирования Фиксирование времени начала теста Запуск тестируемой операции Фиксирование времени окончания теста Отображение результатов теста
4 Функция clock Библиотечная функция определена в заголовочном файле time.h Прототип clock_t clock(); Возвращает время, прошедшее с момента запуска программы в единицах 1/CLK_TCK секунды Используется в Windows
5 Пример использования функции clock #include int main() {double pi; clock_t t; t=clock(); // начало замера времени pi = pi_calculate(); t=clock()-t; // окончание замера времени printf("Time: %lf msec Pi = %lf\n",t*1000.0/CLK_TCK,pi); return 0; }
6 Достоинства и недостатки функции clock Достоинства: высокая платформенная независимость Недостатки: низкая точность, при высокой загрузке процессора – неприемлемая точность, так как измеряется интервал времени, во время которого помимо процесса исследуемой программы исполнялись и другие процессы
7 Команда RDTSC Платформенно-зависимый вариант для x86 Возвращает число тактов с момента запуска процессора Используется в Windows и UNIX для процессоров Intel
8 Пример использования команды RDTSC #include #define FREQ 1995 // Частота процессора, MHz // функция возвращает значение счетчика тактов процессора unsigned long tick() { __asm rdtsc } int main(int argc, char* argv[]) { unsigned long t1,t2; double t, pi; t1=tick(); // начало замера pi = pi_calculate(); t2=tick(); // конец замера t=(double)(t2-t1)/FREQ; printf("Time: %ld mcsec Pi = %lf\n",t,pi); return 0; }
9 Достоинства и недостатки команды RDTSC Достоинства: максимально возможная точность Недостатки: зависимость от архитектуры процессора ухудшение точности при высокой загрузке процессора
10 Функция gettimeofday Библиотечная функция определена в заголовочном файле sys\time.h Прототип int gettimeofday(struct timeval* tv, struct timezone* tz); Время можно вычислить из структуры timeval Используется в UNIX
11 Пример использования функции gettimeofday #include struct timeval tv1,tv2,dtv; struct timezone tz; void time_start() { gettimeofday(&tv1, &tz); } double time_stop() { gettimeofday(&tv2, &tz); dtv.tv_sec= tv2.tv_sec - tv1.tv_sec; dtv.tv_usec=tv2.tv_usec - tv1.tv_usec; if(dtv.tv_usec
12 Пример использования функции gettimeofday #include int main() {double pi; time_start(); // начало замера времени pi = pi_calculate(); // окончание замера времени printf("Time: %lf msec Pi = %lf\n",time_stop(),pi); return 0; }
13 Достоинства и недостатки функции gettimeofday Достоинства: высокая платформенная независимость Недостатки: низкая точность, при высокой загрузке процессора – неприемлемая точность, так как измеряется интервал времени, во время которого помимо процесса исследуемой программы исполнялись и другие процессы
14 Функция times Библиотечная функция определена в заголовочном файле sys/times.h Прототип clock_t times(struct tms *buf); Возвращает время, прошедшее с момента запуска программы в единицах 1/CLK_TCK секунды Используется в UNIX
15 Пример использования функции times #include struct tms tmsBegin,tmsEnd; void time_start() { times(&tmsBegin); } double time_stop() { times(&tmsEnd); return ((tmsEnd.tms_utime-tmsBegin.tms_utime)+ (tmsEnd.tms_stimetmsBegin.tms_stime))*1000.0/CLK_TCK; }
16 Пример использования функции times #include int main() {double pi; time_start(); // начало замера времени pi = pi_calculate(); // окончание замера времени printf("Time: %lf msec Pi = %lf\n",time_stop(),pi); return 0; }
17 Достоинства и недостатки функции times Достоинства: высокая точность (относительная независимость от других процессов системы) Недостатки: для малых интервалов она зависит от интервала времени прерываний по таймеру
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.