From b8d4a3c29f1144b933403a5afe66625d9ed0d79f Mon Sep 17 00:00:00 2001
From: Hans-Peter Deifel <hpd@hpdeifel.de>
Date: Thu, 4 Apr 2019 16:08:06 +0200
Subject: [PATCH] Print partition size while refining

---
 src/Copar/Algorithm/Split.hs | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/Copar/Algorithm/Split.hs b/src/Copar/Algorithm/Split.hs
index 8ac4e47..ee9df03 100644
--- a/src/Copar/Algorithm/Split.hs
+++ b/src/Copar/Algorithm/Split.hs
@@ -24,7 +24,7 @@ import           Control.Monad.ST
 import           Control.Monad.ST.Unsafe (unsafeSTToIO)
 import           Data.Maybe (maybeToList)
 import           Data.STRef
-import           System.IO.Unsafe (unsafeDupablePerformIO)
+import           System.IO.Unsafe (unsafeDupablePerformIO, unsafePerformIO)
 import           Data.Ord (comparing)
 
 import           Control.Monad.Extra (unlessM, whenM)
@@ -45,11 +45,17 @@ import           Copar.RefinementInterface (RefinementInterface, F3)
 import qualified Copar.RefinementInterface as RI
 import           Copar.Algorithm.Types
 
+import Debug.Trace
+import           System.CPUTime
+
 type SplitM s f = ReaderT (AlgoState s f, BlockQueue s) (ST s)
 
 split :: RefinementInterface f => Block -> SplitM s f ()
 split blockS = do
   (as, _) <- ask
+  let !time = unsafePerformIO getCPUTime
+  size <- lift (Partition.numBlocks (partition as))
+  traceM $ show time <> " " <> show size
   touchedBlocks <- collectTouchedBlocks blockS
 
   forM_ touchedBlocks $ \(b, v0) -> do
-- 
GitLab