Another simple performance counter...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
long dbg_cnt0 = 0;
long dbg_cnt1 = 0;
long dbg_cnt0 = 0;
long dbg_cnt1 = 0;
+bool dbg_show_mean = false;
+bool dbg_show_hit_rate = false;
+
+void dbg_print_mean() {
+
+ std::cout << "Total " << dbg_cnt0 << " Mean "
+ << (float)dbg_cnt1 / (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
/// 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 long dbg_cnt0;
extern long dbg_cnt1;
////
extern long dbg_cnt0;
extern long dbg_cnt1;
-extern void dbg_print_hit_rate();
inline void dbg_hit_on(bool b) { dbg_cnt0++; if (b) dbg_cnt1++; }
inline void dbg_hit_on_c(bool c, bool b) { if (c) dbg_hit_on(b); }
inline void dbg_hit_on(bool b) { dbg_cnt0++; if (b) dbg_cnt1++; }
inline void dbg_hit_on_c(bool c, bool b) { if (c) dbg_hit_on(b); }
inline void dbg_before() { dbg_cnt0++; }
inline void dbg_after() { dbg_cnt1++; }
inline void dbg_before() { dbg_cnt0++; }
inline void dbg_after() { dbg_cnt1++; }
+inline void dbg_mean_of(int v) { dbg_cnt0++; dbg_cnt1 += v; }
+
+extern void dbg_print_hit_rate();
+extern void dbg_print_mean();
+
+extern bool dbg_show_mean;
+extern bool dbg_show_hit_rate;
+
#endif // !defined(MISC_H_INCLUDED)
#endif // !defined(MISC_H_INCLUDED)
{
lastInfoTime = t;
lock_grab(&IOLock);
{
lastInfoTime = t;
lock_grab(&IOLock);
+ if (dbg_show_mean)
+ dbg_print_mean();
+
+ if (dbg_show_hit_rate)
+ dbg_print_hit_rate();
+
std::cout << "info nodes " << nodes_searched() << " nps " << nps()
<< " time " << t << " hashfull " << TT.full() << std::endl;
lock_release(&IOLock);
std::cout << "info nodes " << nodes_searched() << " nps " << nps()
<< " time " << t << " hashfull " << TT.full() << std::endl;
lock_release(&IOLock);