Add a very simple debug framework to
measure the hit rate of a given condition.
Simply insert macro
dbg_hit_on(x);
Anywhere you want to compute hit rate of condition x
and then call, as example in poll(), function
dbg_print_hit_rate() to print current results.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
#include <cstdio>
#include <iomanip>
+#include <iostream>
#include <sstream>
#include "misc.h"
+////
+//// Variables
+////
+
+long dbg_cnt0 = 0;
+long dbg_cnt1 = 0;
+
+
////
//// Functions
////
+void dbg_print_hit_rate() {
+
+ std::cout << "Total " << dbg_cnt0 << " Hit " << dbg_cnt1
+ << " hit rate (%) " << (dbg_cnt1*100)/(dbg_cnt0 ? dbg_cnt0 : 1)
+ << std::endl;
+}
+
/// engine_name() returns the full name of the current Glaurung version.
/// This will be either "Glaurung YYMMDD" (where YYMMDD is the date when the
/// program was compiled) or "Glaurung <version number>", depending on whether
extern int cpu_count();
extern int Bioskey();
+////
+//// Debug
+////
+extern long dbg_cnt0;
+extern long dbg_cnt1;
+extern void dbg_print_hit_rate();
+
+#define dbg_hit_on(x) { dbg_cnt0++; if (x) dbg_cnt1++; }
#endif // !defined(MISC_H_INCLUDED)