1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#ifdef PROF_REALTIME
private mapping __prof_data = ([]);
private System.Timer __prof_timer = System.Timer();
#define PROF_BEGIN(X) __prof_data[X] = __prof_timer->peek()
#define PROF_END(X) werror("%s : %3.3f\n", X, __prof_timer->peek()-__prof_data[X])
#define PROF_RESULT()
#elif defined(PROF_OFF)
#define PROF_BEGIN(X)
#define PROF_END(X)
#define PROF_RESULT()
#else
private mapping __prof_data = ([]);
private System.Timer __prof_timer = System.Timer();
#define PROF_BEGIN(X) __prof_data[X]-=__prof_timer->peek()
#define PROF_END(X) __prof_data[X]+=__prof_timer->peek()
#define PROF_RESULT() foreach(__prof_data; string idx; int val) \
werror("%15s : %3.3f\n", idx, val);
#endif
|