Add a few stats to strings (#4252)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 10 Apr 2020 15:45:52 +0000 (10:45 -0500)
committerGitHub <noreply@github.com>
Fri, 10 Apr 2020 15:45:52 +0000 (10:45 -0500)
To give an idea of the high-level behavior.

src/theory/strings/sequences_stats.cpp
src/theory/strings/sequences_stats.h
src/theory/strings/theory_strings.cpp

index afcfb1a601ceb1b87d01fbcd8feb18b4cad2f2fe..c830a68bda0fbeb0283722f91eed9a42ffb55d61 100644 (file)
@@ -22,7 +22,9 @@ namespace theory {
 namespace strings {
 
 SequencesStatistics::SequencesStatistics()
-    : d_inferences("theory::strings::inferences"),
+    : d_checkRuns("theory::strings::checkRuns", 0),
+      d_strategyRuns("theory::strings::strategyRuns", 0),
+      d_inferences("theory::strings::inferences"),
       d_cdSimplifications("theory::strings::cdSimplifications"),
       d_reductions("theory::strings::reductions"),
       d_regexpUnfoldingsPos("theory::strings::regexpUnfoldingsPos"),
@@ -38,6 +40,8 @@ SequencesStatistics::SequencesStatistics()
                                  0),
       d_lemmasInfer("theory::strings::lemmasInfer", 0)
 {
+  smtStatisticsRegistry()->registerStat(&d_checkRuns);
+  smtStatisticsRegistry()->registerStat(&d_strategyRuns);
   smtStatisticsRegistry()->registerStat(&d_inferences);
   smtStatisticsRegistry()->registerStat(&d_cdSimplifications);
   smtStatisticsRegistry()->registerStat(&d_reductions);
@@ -56,6 +60,8 @@ SequencesStatistics::SequencesStatistics()
 
 SequencesStatistics::~SequencesStatistics()
 {
+  smtStatisticsRegistry()->unregisterStat(&d_checkRuns);
+  smtStatisticsRegistry()->unregisterStat(&d_strategyRuns);
   smtStatisticsRegistry()->unregisterStat(&d_inferences);
   smtStatisticsRegistry()->unregisterStat(&d_cdSimplifications);
   smtStatisticsRegistry()->unregisterStat(&d_reductions);
index 63d9f55ebeffa02388837209fab07802f3ae6e27..8a1564587a56616c8e52568b6e30dfd073e18a5e 100644 (file)
@@ -55,6 +55,10 @@ class SequencesStatistics
  public:
   SequencesStatistics();
   ~SequencesStatistics();
+  /** Number of calls to run a check where strategy is present */
+  IntStat d_checkRuns;
+  /** Number of calls to run the strategy */
+  IntStat d_strategyRuns;
   //--------------- inferences
   /** Counts the number of applications of each type of inference */
   HistogramStat<Inference> d_inferences;
index 609822fe10640fe2960f642df69882eb38d893a8..81e43c5955cf5d96b05acf18c9900d2ff3e96166 100644 (file)
@@ -737,12 +737,14 @@ void TheoryStrings::check(Effort e) {
       }
       Trace("strings-eqc") << std::endl;
     }
+    ++(d_statistics.d_checkRuns);
     unsigned sbegin = itsr->second.first;
     unsigned send = itsr->second.second;
     bool addedLemma = false;
     bool addedFact;
     Trace("strings-check") << "Full effort check..." << std::endl;
     do{
+      ++(d_statistics.d_strategyRuns);
       Trace("strings-check") << "  * Run strategy..." << std::endl;
       runStrategy(sbegin, send);
       // flush the facts