/* src/vm/rt-timing.h - POSIX real-time timing utilities
- Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
- C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
- E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
- J. Wenninger, Institut f. Computersprachen - TU Wien
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Edwin Steiner
-
- Changes:
-
- $Id$
-
*/
+
#ifndef _RT_TIMING_H
#define _RT_TIMING_H
+#include "config.h"
+
#if defined(ENABLE_RT_TIMING)
-#include "config.h"
+#include <time.h>
+
#include "vm/types.h"
-#include <time.h>
+#include "mm/memory.hpp"
-#include "mm/memory.h"
#include "vm/global.h"
+
#define RT_TIMING_GET_TIME(ts) \
rt_timing_gettime(&(ts));
#define RT_TIMING_LOAD_CL_JAVA 44
#define RT_TIMING_LOAD_CL_CACHE 45
-#define RT_TIMING_LOCK_MEASERR 46
-#define RT_TIMING_LOCK_LOCK 47
-#define RT_TIMING_LOCK_UNLOCK 48
+#define RT_TIMING_NEW_OBJECT 46
+#define RT_TIMING_NEW_ARRAY 47
-#define RT_TIMING_N 49
+#define RT_TIMING_GC_ALLOC 48
+#define RT_TIMING_GC_SUSPEND 49
+#define RT_TIMING_GC_ROOTSET1 50
+#define RT_TIMING_GC_MARK 51
+#define RT_TIMING_GC_COMPACT 52
+#define RT_TIMING_GC_ROOTSET2 53
+#define RT_TIMING_GC_TOTAL 54
+
+#define RT_TIMING_REPLACE 55
+
+#define RT_TIMING_1 56
+#define RT_TIMING_2 57
+#define RT_TIMING_3 58
+#define RT_TIMING_4 59
+
+#define RT_TIMING_N 60
void rt_timing_gettime(struct timespec *ts);
void rt_timing_time_diff(struct timespec *a,struct timespec *b,int index);
+long rt_timing_diff_usec(struct timespec *a,struct timespec *b);
+
void rt_timing_print_time_stats(FILE *file);
#else /* !defined(ENABLE_RT_TIMING) */