Я пытаюсь создать таймер для профилирования некоторых функций.Например,
#include <date_time/posix_time/posix_time.hpp>
boost::posix_time::ptime t1, t2;
t1 = boost::posix_time::microsec_clock::local_time();
boost::this_thread::sleep(boost::posix_time::milliseconds(1000));
t2 = boost::posix_time::microsec_clock::local_time();
std::cout << to_simple_string(t1) << std::endl;
std::cout << to_simple_string(t2) << std::endl;
Вывод, который я получаю, такой:
2012-Mar-04 08:21:24.760019
2012-Mar-04 08:21:25.760577
Фактическое время, прошедшее 1 секунда и 558 микросекунд, так или иначе, я могу улучшить эту точность доскажем, менее 1 микросекунды?
Я также пробовал что-то подобное с линкером -lrt.
#include <time.h>
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &timer_start);
boost::this_thread::sleep(boost::posix_time::milliseconds(1000));
clock_gettime(1CLOCK_PROCESS_CPUTIME_ID, &timer_end);
Но компилятор возвращает семантическую ошибку для CLOCK_PROCESS_CPUTIME_ID.Сообщение об ошибке следующее.
Description Resource Path Location Type
Symbol 'CLOCK_PROCESS_CPUTIME_ID' could not be resolved _OVERVIEW.cpp /FUTETP/BACKEND line 32 Semantic Error