Add mean calculation in debug tools
authorMarco Costalba <mcostalba@gmail.com>
Sat, 11 Oct 2008 17:25:16 +0000 (19:25 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 11 Oct 2008 17:25:16 +0000 (19:25 +0200)
Another simple performance counter...

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/misc.cpp
src/misc.h
src/search.cpp

index 07d58d637fb9fbc33b33509ed3212ca3b6246011..8c2fc28a344dd929a6d023cfb1fb9002d41aa6bc 100644 (file)
@@ -51,6 +51,9 @@ int gettimeofday(struct timeval * tp, struct timezone * tzp);
 long dbg_cnt0 = 0;
 long dbg_cnt1 = 0;
 
+bool dbg_show_mean = false;
+bool dbg_show_hit_rate = false;
+
 
 ////
 //// Functions
@@ -63,6 +66,12 @@ void dbg_print_hit_rate() {
             << std::endl;
 }
 
+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
index a1c76e87e094c15b79b6a9d5f1737fa90b7acb75..d3b555cbb0d379f101f84af8a3f45c88495e5fb6 100644 (file)
@@ -61,7 +61,6 @@ extern int Bioskey();
 ////
 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); }
@@ -69,4 +68,12 @@ 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_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)
index 4b966f61958d54460f2988990832d648a0f990e2..8279d15780474d598144d5d1a0c16a0804f9e501 100644 (file)
@@ -2172,6 +2172,12 @@ namespace {
     {
         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);