78 lines
4.0 KiB
C++
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_
|
|
|