Консультация № 107266
29.10.2007, 18:37
0.00 руб.
0 5 3
Здравствуйте, Уважаемые Эксперты! Подскажите, можно ли в С++ без внешних утилит вычислить время выполнения программы. Если нет, то дайте ссылочку пожалуйста на такие утилиты.

Обсуждение

Неизвестный
29.10.2007, 19:16
общий
это ответ
Здравствуйте, Djec!
Для этого можно моспользоваться одной из многих функций считывания времени, например функцией:
VOID GetSystemTime(SYSTEMTIME *); считывает системное время с точностью до миллисекунд в структуру SYSTEMTIME.
В приложении шаблон программы:

Приложение:
#include <winbase.h>void main(void){SYSTEMTIME timeB, timeE;//В самом начале запоминаем времяGetSystemTime(&timeB);......................//Здесь вся программа......................//Считываем время после исполнения программыGetSystemTime(&timeE);}
Неизвестный
29.10.2007, 22:52
общий
Еще можно воспользоваться встроенным в Вижуал профилировщиком.Удачи!
Неизвестный
29.10.2007, 23:45
общий
это ответ
Здравствуйте, Djec!
Еще один вариант - без Winapi, а с использованием стандартной библиотеки, что на мой взгляд лучше.

Приложение:
#include <time.h>int main(){ time_t seconds; seconds = time (NULL);/*ПРОГРАММА*/ printf("Программа выполнялась %ld секунд", time(NULL)-seconds); return 0;}
Неизвестный
30.10.2007, 00:12
общий
это ответ
Здравствуйте, Djec!
В принципе можно использовать профилировщик. Он вычисляет не только время выполнения всей программы, но и времявыполнения каждой функции. Входит в стандартную поставку компилятора. В Visual C++ называется profile.exe. В остальных - не знаю... А на счет вычисления времени выполнения программы ею самою - то почитай книгу Криса Касперски(не путать с Евгением Касперским - автором антивируса Касперского) "Техника оптимизации программ". Там эта проблема детально описывается....
давно
Академик
20764
1861
30.10.2007, 10:38
общий
В UNIX-ах для этого есть times()Может он и в в виндах тоже есть?
Форма ответа