Здравствуйте! В под GCC в GNU/Linux, BSD, Windows функция clock() всегда возвращает ноль? Что делать или как с этим бороться?
P.S. GCC 4.5
Clock() (GCC 4.5.0)
Модератор: Модераторы разделов
-
Red User
- Сообщения: 229
- ОС: Debian
Re: Clock()
Может, просто времени мало проходит?
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Clock()
Бороться очень просто - заставить Вашу программу нагрузить процессор:
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE (64 * ( 1 << 20 ) )
#define COUNT ( SIZE / sizeof( long ) )
int main( int argc, char** argv, char** envp )
{
long* p = ( long* ) malloc( SIZE );
for( long i = 0; i < COUNT; i++ ) {
p[ i ] *= 3;
}
printf( "%lg sec\n", clock() / ( double ) CLOCKS_PER_SEC );
}Вот, к примеру. (у меня 0.07 выдаёт)
Может Вы не поняли назначение данной функции? Она возвращает процессорное время, потреблённое программой. Не время от начала запуска. Т.е. тот же scanf времени занимать может много, а вот процессорного времени - мало. Потому что процессор простаивает.
-
BratSinot
- Сообщения: 812
- ОС: Slackware64
Re: Clock()
NickLion писал(а): ↑15.05.2010 11:30
Бороться очень просто - заставить Вашу программу нагрузить процессор:
Вот, к примеру. (у меня 0.07 выдаёт)
Может Вы не поняли назначение данной функции? Она возвращает процессорное время, потреблённое программой. Не время от начала запуска. Т.е. тот же scanf времени занимать может много, а вот процессорного времени - мало. Потому что процессор простаивает.
Надо не процессор нагрузить, а задержку поставить. Я просто не был готов к тому, что массив из 1000 элементов отсортируется пузырьковым методом меньше чем за миллисекунду. Даже на BlogSpot и StupidSort он меньше миллисекунды сортируется.
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: Clock()
На то сейчас и возрастают вычислительные мощности. У меня на компьютере средней паршивости за 20мс получается видеокадр, из него вырезается нужный участок 128х128 пикселей (для меньших участков скорость еще выше), этот участок фильтруется вейвлетами Дюбеши (или медианной фильтрацией - тогда скорость возрастает), а потом посредством преобразований Фурье вычисляется корреляционная функция кадра с предыдущим для определения смещения
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка