LINUX.ORG.RU

CLOCKS_PER_SEC = 128. Это нормально?

 ,


2

1

Собрал софтину clang-ом на FreeBSD-серваке. std::cout << CLOCKS_PER_SEC << "\n"; вывело 128. На десктопном линуксе было что-то типа 1000000. Как жить дальше?

Хочу получать число микросекунд, которые проведены в моём коде, а не вообще. Для этого набыдлокодил такой код: (double там появились после того, как integer-деление 128 на 1000000 стало давать 0. Короче, чё делать-то с этим 128? Как так может быть?

    double raw = clock();
    double result = raw / ( ((double)CLOCKS_PER_SEC) / ((double)1000000l));
    return result;

Спасибо.

Ответ на: комментарий от hlamotron

Зачем смотреть, когда должен работать clock()?

https://www.freebsd.org/cgi/man.cgi?query=clocks

The clock reported by clock(3). This is a virtual clock with a frequency that happens to be 128. Its actual frequency is given by the macro CLOCKS_PER_SEC. Note that CLOCKS_PER_SEC may be floating point. Do not use clock(3) in new programs under FreeBSD.

UPD: да, может быть лучше посмотреть на getrusage()

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.