![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Sasisa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.4.2007 Репутация: нет Всего: нет |
Всех с праздничком!
1) Подскажите, пожалуйста, есть ли в C++ возможность зафиксировать время работы программы от момента её запуска, например? С помощью какой функции это возможно сделать? (имеется в виду с точностью хотя бы до десятых секунды) 2)Зависит ли время обработки программы при одинаковых исходных данных от чего либо, кроме загрузки процессора? Это сообщение отредактировал(а) Sasisa - 8.4.2007, 20:43 |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
да хотя бы через clock().
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 2 Всего: 95 |
Мне кажется такое решается с помощью отдельного потока (если, конечно, среда не DOS). Запускаешь поток, делаешь ему Sleep("Время работы в секундах") и перед завершением потока - завершаешь основной процесс...
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Да. Например, от загруженности дисковой подсистемы, если данные берутся с диска. |
|||
|
||||
Sasisa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.4.2007 Репутация: нет Всего: нет |
Среда как раз Dos...
попробовал использовать Clock(), но в результате время обработки программы оказывается 0.00000 К примеру, при таком варианте время обработки так же выдается 0.00000
если же поставить delay(200), то время будет примерно таким 0.164352 Хоть программный код подопытной проги не очень большой, но все таки хотелось бы видеть хоть какие доли секунды, а не нули...как быть? может есть еще какие варианты или нюансы? |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
А так? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Скорее так
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
скорее так
![]()
время в миллисекундах |
|||
|
||||
Sasisa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.4.2007 Репутация: нет Всего: нет |
Лучше всего работает вариант, предложенный Dov
но все равно не достаточно точно :( например, при задержке delay(10) уже показывает нули. может стоит запускать прогу на Pentim I или вообще на 486? ![]() |
|||
|
||||
FiMa1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
А может лучше профайлером таки замерить.. и наглядно и действенно.. Могу отсоветовать vTune.
|
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Короче юзайте GetTickCount(), а не какой-то гонимый clock()
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Sasisa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.4.2007 Репутация: нет Всего: нет |
Всем спасибо!
буду искать варианты из вышепредложенного ![]() |
|||
|
||||
aldari |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Если clock показывает 0.0000 значит прошло очень мало времени.
так что тебе хаватит А при замере времени выполнения алгоритма обычно его помещают в цикл while (i < 10000) .... Я показывал преподавателю результаты замера с помощью профайлера, он объяснял на примере с ниткой: размер нитки трудно измерить, измерить толщину мотка уже проще. Да.. давно уже было.... |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |