Medial Code Documentation
Loading...
Searching...
No Matches
timer.h
Go to the documentation of this file.
1
7#ifndef DMLC_TIMER_H_
8#define DMLC_TIMER_H_
9
10#include "base.h"
11
12#if DMLC_USE_CXX11
13#include <chrono>
14#endif
15
16#include <time.h>
17#ifdef __MACH__
18#include <mach/clock.h>
19#include <mach/mach.h>
20#endif
21#include "./logging.h"
22
23namespace dmlc {
27inline double GetTime(void) {
28 #if DMLC_USE_CXX11
29 return std::chrono::duration<double>(
30 std::chrono::high_resolution_clock::now().time_since_epoch()).count();
31 #elif defined __MACH__
32 clock_serv_t cclock;
33 mach_timespec_t mts;
34 host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
35 CHECK(clock_get_time(cclock, &mts) == 0) << "failed to get time";
36 mach_port_deallocate(mach_task_self(), cclock);
37 return static_cast<double>(mts.tv_sec) + static_cast<double>(mts.tv_nsec) * 1e-9;
38 #else
39 #if defined(__unix__) || defined(__linux__)
40 timespec ts;
41 CHECK(clock_gettime(CLOCK_REALTIME, &ts) == 0) << "failed to get time";
42 return static_cast<double>(ts.tv_sec) + static_cast<double>(ts.tv_nsec) * 1e-9;
43 #else
44 return static_cast<double>(time(NULL));
45 #endif
46 #endif
47}
48} // namespace dmlc
49#endif // DMLC_TIMER_H_
defines console logging options for xgboost. Use to enforce unified print behavior.
namespace for dmlc
Definition array_view.h:12
double GetTime(void)
return time in seconds
Definition timer.h:27
Macros common to all headers.