sustaining_gazes/lib/3rdParty/dlib/include/dlib/time_this.h

78 lines
4.0 KiB
C++

// Copyright (C) 2003 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_TIME_THIs_
#define DLIB_TIME_THIs_
#include "platform.h"
#ifndef WIN32
#include <sys/times.h>
#include <limits.h>
#include <unistd.h>
#include <iostream>
// ----------------------------------------------------------------------------------------
#define TIME_THIS_TO(_tt_op,_tt_out) \
{ \
clock_t _tt_start, _tt_end; \
tms _tt_timesbuf; \
_tt_start = times(&_tt_timesbuf); \
_tt_op; \
_tt_end = times(&_tt_timesbuf); \
long _tt_ticks = sysconf(_SC_CLK_TCK); \
if ((double)(_tt_end-_tt_start)/(double)_tt_ticks < 1) \
{ \
_tt_out << "\ntime: " \
<< (int)(1000*((double)(_tt_end-_tt_start)/(double)_tt_ticks)) << "ms\n"; \
} \
else \
{ \
_tt_out << "\ntime: " \
<< (double)(_tt_end-_tt_start)/(double)_tt_ticks << "sec\n"; \
} \
} \
#define TIME_THIS(_tt_op) TIME_THIS_TO(_tt_op,std::cout)
// ----------------------------------------------------------------------------------------
#endif
#ifdef WIN32
#include "windows_magic.h"
#include <windows.h> // for GetTickCount()
#include <iostream>
// ----------------------------------------------------------------------------------------
#define TIME_THIS_TO(_tt_op,_tt_out) \
{ \
unsigned long _tt_count = GetTickCount(); \
_tt_op; \
_tt_count = GetTickCount() - _tt_count; \
if (_tt_count < 1000) \
{ \
_tt_out << "\ntime: " << _tt_count << "ms\n"; \
} \
else \
{ \
_tt_out << "\ntime: " << static_cast<double>(_tt_count)/1000 << "sec\n"; \
} \
} \
#define TIME_THIS(_tt_op) TIME_THIS_TO(_tt_op,std::cout)
// ----------------------------------------------------------------------------------------
#endif
#endif // DLIB_TIME_THIs_