anonymous@RULINUX.NET~# Last login: 2024-12-26 10:52:42
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

clock(); Чо за нафиг?

Собственно спустя год после прошлого раза опять бьюсь с замером времени выполнения сишного кода. clock() что-то как-то выдает все, кроме того, что надо и даже если искусственно sleep()'ом введена задержка может выдать, такое ощущение, просто рандомное значение. Собственно вопрос к местным - чем быстро и зло замерить время исполнения куска кода в миллисекундах для последующего printf'a? Гуглить лень.

anonymous(*) (2009-07-10 16:40:17)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko/2009061319 Iceweasel/3.0.11 (Debian-3.0.11-1)

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

outb в LPT + осциллограф?

marsijanin(*)(2009-07-10 18:43:13)

Emacs-w3m/1.4.335 w3m/0.5.2
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

нда, а как с осциллографа printf() делать? мне же на самом деле надо тупо в страницу написать время генерации )

AiFiLTr0(*)(2009-07-10 21:39:54)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko/2009061319 Iceweasel/3.0.11 (Debian-3.0.11-1)
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

/dev/rtc ?

marsijanin(*)(2009-07-10 22:22:53)

Emacs-w3m/1.4.335 w3m/0.5.2
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

gprof ?

progman(*)(2009-07-11 01:25:59)

Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.10 (like Gecko) (Debian)
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

О какого порядка временах идёт речь? Возможно, не хватает разрешения либо последствия многозадачности. Может быть, следует поюзать реалтаймовое ядро и реалтаймовый приоритет для сего случая?

bugmaker(*)(2009-07-11 04:29:02)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

миллисекунды.

AiFiLTr0(*)(2009-07-13 01:40:13)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko/2009061319 Iceweasel/3.0.11 (Debian-3.0.11-1)
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

нда, действительно. Проглядел.

man clock:

> The clock() function returns an approximation of processor time used by the program.

если используется sleep() или nanosleep(), это время не входит во время выполнения проги. clock() возвращает время, затраченное прогой, т.е. то, что выводится в строке user утилиты time, а тебе видимо нужно то, что выводится в строке real. Попробуй сделать хеловорд со sleep() внутре, а потом на его месте с циклом, выполняющимся некоторое время и например что-то вычисляющим. Сравни вывод утилиты time, напущенной на это прого.

Разрешения clock() обычно не хватает для измерения единиц миллисекунд. Чтобы узнать разрешение, сделай код типа

  1.   t1 = clock();
  2.   do {
  3.   t2 = clock ();
  4.   } while (t2 != t1);
  5.   printf ("resolution %f sec ", (double) (t2 - t1) / (double) CLOCKS_PER_SEC);
  6.  
Это покажет минимальное время, которое может быть измерено функцией. У меня на компе для clock 10мс, а для gettimeofday 1мс, так что можешь использовать последнюю если подойдёт, но вообще говоря на разных компах это разрешение может быть разным. А так, как уже сказали, /dev/rtc. Пример и пояснения можно глянуть в /usr/src/linux/Documentation/rtc.txt

bugmaker(*)(2009-07-13 06:07:57)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
[#] [Добавить метку] [Редактировать] Ответ на: clock(); Чо за нафиг? от anonymous 2009-07-10 16:40:17
avatar
Скрыть

Re:clock(); Чо за нафиг?

Спасибо.

AiFiLTr0(*)(2009-07-13 11:37:09)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko/2009061319 Iceweasel/3.0.11 (Debian-3.0.11-1)
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!