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