Вот программа:
timer.cpp:
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
#include <time.h>
int main( int argc, char** argv) {
#define BILLION 1E9
struct timespec requestStart, requestEnd;
// Calculate time taken by a request
clock_gettime(CLOCK_REALTIME, &requestStart);
//function_call(); // time this
clock_gettime(CLOCK_REALTIME, &requestEnd);
// Calculate time it took
double accum = ( requestEnd.tv_sec - requestStart.tv_sec )
+ (( requestEnd.tv_nsec - requestStart.tv_nsec ) / BILLION);
cout << accum << endl;
}
На Mac OSX 10.8.5 у меня есть доступ к двум компиляторам: Apple LLVM версия 4.2 (clang-425.0.28), вызывается как c++
, а также gcc версия 4.2.1 (вау, это старое), вызывается как g++
,
c ++ timer.cpp:
error: use of undeclared identifier 'CLOCK_REALTIME'
clock_gettime(CLOCK_REALTIME, &requestStart);
g ++ timer.cpp:
timer.cpp: In function ‘int main(int, char**)’:
timer.cpp:15: error: ‘CLOCK_REALTIME’ was not declared in this scope
timer.cpp:15: error: ‘clock_gettime’ was not declared in this scope
Я что-то опускаю или просто работаю с архаичными компиляторами?
ОБНОВИТЬ Я подтвердил это это решение работает со стандартными компиляторами и библиотеками c ++ и g ++ в OSX 10.8.5.
Задача ещё не решена.
Других решений пока нет …