Russian Qt Forum
Май 28, 2024, 21:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: clock() + MP  (Прочитано 2400 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Май 08, 2013, 15:04 »

Добрый день

Вроде бы безобидный замер времени в секундах
Код
C++ (Qt)
clock_t timeStart = clock();
DoSomething();
int elapsed = (clock() - timeStart) / CLOCKS_PER_SEC;

Однако если в DoSomething() работают неск ниток - elapsed не соответствует замеренному по моим настенным часам.  Напр на 1 нитке имеем 40 сек, elapsed = 40. На 4 нитках имеет 15 сек, но elapsed = 39(40)

Эту шутку я не знал  Улыбающийся
Записан
Disa
Гость
« Ответ #1 : Май 12, 2013, 22:32 »

То есть нужно делать таймер у каждой нитки и брать самый долгий?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Май 14, 2013, 08:22 »

Бегло погуглив я увидел фразу типа "clock меряет время процесса" - наверное надо понимать "всеми нитками". Это может быть полезным напр сразу замерять и "время по часам" (используя др ф-ции) и время как бы с 1 ядром (используя clock)
Записан
Bepec
Гость
« Ответ #3 : Май 14, 2013, 08:30 »

Так же бегло погуглив, можно узнать что он вроде бы меряет выполненные инструкции процессора для процесса в котором вызван. Недостоверная информация конечно же, но мне она больше нравится Показает язык
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 19.