From 8f366d6dd40bc475b655bc5ca755fb3d9b464508 Mon Sep 17 00:00:00 2001 From: res Date: Wed, 5 Dec 2007 23:22:13 +0000 Subject: [PATCH] Add helper header to simplify measuring time spent in a block or statement. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7765 d7cf8633-e32d-0410-b094-e92efae38249 --- timing.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 timing.h diff --git a/timing.h b/timing.h new file mode 100644 index 00000000..3dd3602c --- /dev/null +++ b/timing.h @@ -0,0 +1,57 @@ +/* +Simple helper macros to time blocks or statements. + +Copyright (C) 2007 Frank Richter + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef __TIMING_H__ +#define __TIMING_H__ + +#if defined(DO_TIMING) + +#define TIMING_BEGIN double _timing_end_, _timing_start_ = Sys_DoubleTime(); +#define TIMING_END_STR(S) \ + _timing_end_ = Sys_DoubleTime(); \ + Con_Printf ("%s: %.3g s\n", S, _timing_end_ - _timing_start_); +#define TIMING_END TIMING_END_STR(__FUNCTION__) + +#define TIMING_INTERMEDIATE(S) \ + { \ + double currentTime = Sys_DoubleTime(); \ + Con_Printf ("%s: %.3g s\n", S, currentTime - _timing_start_); \ + } + +#define TIMING_TIMESTATEMENT(Stmt) \ + { \ + TIMING_BEGIN \ + Stmt; \ + TIMING_END_STR(#Stmt); \ + } + +#else + +#define TIMING_BEGIN +#define TIMING_END_STR(S) +#define TIMING_END +#define TIMING_INTERMEDIATE(S) +#define TIMING_TIMESTATEMENT(Stmt) Stmt + +#endif + +#endif // __TIMING_H__ \ No newline at end of file -- 2.39.2