Clock() (GCC 4.5.0)

Модератор: Модераторы разделов

BratSinot
Сообщения: 812
ОС: Slackware64

Clock()

Сообщение BratSinot »

Здравствуйте! В под GCC в GNU/Linux, BSD, Windows функция clock() всегда возвращает ноль? Что делать или как с этим бороться?

P.S. GCC 4.5
Спасибо сказали:
Аватара пользователя
Red User
Сообщения: 229
ОС: Debian

Re: Clock()

Сообщение Red User »

Может, просто времени мало проходит?
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Clock()

Сообщение NickLion »

BratSinot писал(а):
13.05.2010 07:42
Здравствуйте! В под GCC в GNU/Linux, BSD, Windows функция 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()

Сообщение BratSinot »

NickLion писал(а):
15.05.2010 11:30
BratSinot писал(а):
13.05.2010 07:42
Здравствуйте! В под GCC в GNU/Linux, BSD, Windows функция clock() всегда возвращает ноль? Что делать или как с этим бороться?

Бороться очень просто - заставить Вашу программу нагрузить процессор:

Вот, к примеру. (у меня 0.07 выдаёт)
Может Вы не поняли назначение данной функции? Она возвращает процессорное время, потреблённое программой. Не время от начала запуска. Т.е. тот же scanf времени занимать может много, а вот процессорного времени - мало. Потому что процессор простаивает.

Надо не процессор нагрузить, а задержку поставить. Я просто не был готов к тому, что массив из 1000 элементов отсортируется пузырьковым методом меньше чем за миллисекунду. Даже на BlogSpot и StupidSort он меньше миллисекунды сортируется.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Clock()

Сообщение eddy »

BratSinot писал(а):
15.05.2010 13:28
Я просто не был готов к тому, что массив из 1000 элементов отсортируется пузырьковым методом меньше чем за миллисекунду

На то сейчас и возрастают вычислительные мощности. У меня на компьютере средней паршивости за 20мс получается видеокадр, из него вырезается нужный участок 128х128 пикселей (для меньших участков скорость еще выше), этот участок фильтруется вейвлетами Дюбеши (или медианной фильтрацией - тогда скорость возрастает), а потом посредством преобразований Фурье вычисляется корреляционная функция кадра с предыдущим для определения смещения :)
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали: