blob: 4ddc31f5e08bf3dcdc01086c8e4c1bb9e43e4c94 [file] [log] [blame]
/// A simple profiler using performance counter
#ifndef _SC_PROFILER_H_
#define _SC_PROFILER_H_
#include "safecode/SAFECode.h"
#include <stdint.h>
#include <stdlib.h>
#include "rdtsc.h"
#define ENABLE_PROFILING 1
#define SAMPLING_FACTOR 32
#define ENABLE_SAMPLING 1
#undef ENABLE_PROFILING
// HACK
#ifdef __linux__
#define LOG_FN_TMPL "/localhome/mai4/profiler.%s.dat"
#else
#define LOG_FN_TMPL "/Users/mai4/work/data/profiler.%s.dat"
#endif
#ifdef ENABLE_PROFILING
#define PROFILING(X) X
#else
#define PROFILING(X)
#endif
NAMESPACE_SC_BEGIN
// Log info for time sync
void profile_sync_point(unsigned long long start_time, unsigned long long end_time, unsigned int queue_size);
// Log info for enque
void profile_enqueue(unsigned long long start_time, unsigned long long end_time);
// Print a log to profiler
void profile_queue_op(int type, unsigned long long start_time, unsigned long long end_time);
NAMESPACE_SC_END
#endif