diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,19 @@
 # Change Log
 
+## Unreleased
+
+
+## 0.20.0.0 - 2024-11-25
+
+* Add pretty printing for timestamps ([#92](https://github.com/haskell/ghc-events/pull/92))
+* Added `--version` option to CLI interface ([#95](https://github.com/haskell/ghc-events/pull/95))
+* Support GHC 9.8 ([#102](https://github.com/haskell/ghc-events/pull/102))
+* Add support for era profiling events ([#103](https://github.com/haskell/ghc-events/pull/103))
+* Support GHC 9.10 ([#105](https://github.com/haskell/ghc-events/pull/105))
+* Add support for the NonmovingPrunedSegment event ([#107](https://github.com/haskell/ghc-events/pull/107))
+* Fix the type of the `profCap` field of `ProfSampleCostCentre` ([#108](https://github.com/haskell/ghc-events/pull/108))
+
+
 ## 0.19.0.1 - 2023-04-13
 
 * Update for GHC 9.6 ([#93](https://github.com/haskell/ghc-events/pull/93))
diff --git a/GhcEvents.hs b/GhcEvents.hs
--- a/GhcEvents.hs
+++ b/GhcEvents.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE CPP #-}
-
 module Main where
 
 import GHC.RTS.Events
@@ -15,22 +13,31 @@
 import System.Environment (getArgs)
 import Data.Either (rights)
 import qualified Data.Map as M
+import Data.Version (showVersion)
+import qualified Paths_ghc_events as P
 import System.IO
 import System.Exit
 
+
 main :: IO ()
 main = getArgs >>= command
 
 command :: [String] -> IO ()
+command ["--version"] = putStrLn $ "ghc-events version: " ++ showVersion P.version
+
 command ["--help"] = putStr usage
 
 command ["inc", file] = printEventsIncremental False file
 
 command ["inc", "force", file] = printEventsIncremental True file
 
+command ["show", "--pretty-time", file] = do
+    evtLog <- readLogOrDie file
+    putStrLn $ ppEventLog PrettyTime evtLog
+
 command ["show", file] = do
     evtLog <- readLogOrDie file
-    putStrLn $ ppEventLog evtLog
+    putStrLn $ ppEventLog RawTime evtLog
 
 command ["show", "threads", file] = do
     eventLog <- readLogOrDie file
@@ -44,7 +51,7 @@
     putStrLn "Thread Indexed Events:"
     putStrLn . showMap
       ((++ "\n") . show)
-      (unlines . map (("  " ++) . ppEvent eventTypeMap)) $
+      (unlines . map (("  " ++) . ppEvent RawTime eventTypeMap)) $
         threadMap
 
 command ["show", "caps", file] = do
@@ -58,7 +65,7 @@
     putStrLn "Cap Indexed Events:"
     putStrLn . showMap
       ((++ "\n") . show)
-      (unlines . map (("  " ++) . ppEvent eventTypeMap)) $
+      (unlines . map (("  " ++) . ppEvent RawTime eventTypeMap)) $
         capMap
 
 command ["merge", out, file1, file2] = do
@@ -188,6 +195,7 @@
     align = 4 + (maximum . map (length . fst) $ strings)
     pad (x, y) = zipWith const (x ++ repeat ' ') (replicate align ()) ++ y
     strings = [ ("ghc-events --help:",                     "Display this help.")
+              , ("ghc-events --version",                   "Print the version of ghc-events.")
               , ("ghc-events inc <file>:",                 "Pretty print an event log incrementally")
               , ("ghc-events inc force <file>:",           "Pretty print an event log incrementally. Retry on incomplete input (aka 'tail -f').")
               , ("ghc-events show <file>:",                "Pretty print an event log.")
@@ -242,8 +250,3 @@
   concat $ zipWith (++)
     (map showKey . M.keys $ m :: [String])
     (map (showValue . (M.!) m) . M.keys $ m :: [String])
-
-#if !MIN_VERSION_base(4,8,0)
-die :: String -> IO a
-die err = hPutStrLn stderr err >> exitFailure
-#endif
diff --git a/ghc-events.cabal b/ghc-events.cabal
--- a/ghc-events.cabal
+++ b/ghc-events.cabal
@@ -1,8 +1,8 @@
 cabal-version:    2.4
 name:             ghc-events
-version:          0.19.0.1
+version:          0.20.0.0
 synopsis:         Library and tool for parsing .eventlog files from GHC
-description:      Parses .eventlog files emitted by GHC 6.12.1 and later.
+description:      Parses .eventlog files emitted by GHC 8.0.2 and later.
                   Includes the ghc-events tool permitting, in particular,
                   to dump an event log file as text.
 category:         Development, GHC, Debug, Profiling, Trace
@@ -31,13 +31,15 @@
                   GHC == 9.2.4
                   GHC == 9.4.2
                   GHC == 9.6.1
+                  GHC == 9.8.1
+                  GHC == 9.10.1
 extra-source-files: include/EventLogFormat.h
                     test/*.eventlog
                     test/*.reference
                     test/Utils.hs
                     test/stop.hs
-                    README.md
-                    CHANGELOG.md
+extra-doc-files: README.md
+                 CHANGELOG.md
 
 source-repository head
   type: git
@@ -53,12 +55,12 @@
 
 library
   import:           default
-  build-depends:    base       >= 4.7 && < 4.19,
-                    containers >= 0.5 && < 0.7,
+  build-depends:    base       >= 4.7 && < 4.21,
+                    containers >= 0.5 && < 0.8,
                     binary     >= 0.7 && < 0.11,
-                    bytestring >= 0.10.4,
+                    bytestring >= 0.10.4 && < 0.13,
                     array      >= 0.2 && < 0.6,
-                    text       >= 0.11.2.3 && < 2.1,
+                    text       >= 0.11.2.3 && < 2.2,
                     vector     >= 0.7 && < 0.14
   exposed-modules:  GHC.RTS.Events,
                     GHC.RTS.Events.Incremental
@@ -70,6 +72,8 @@
   other-modules:    GHC.RTS.EventParserUtils,
                     GHC.RTS.EventTypes
                     GHC.RTS.Events.Binary
+                    Paths_ghc_events
+  autogen-modules:  Paths_ghc_events
   hs-source-dirs:   src
   include-dirs:     include
   other-extensions: FlexibleContexts, CPP
@@ -79,6 +83,8 @@
   import:           default
   main-is:          GhcEvents.hs
   build-depends:    ghc-events, base, containers, bytestring
+  other-modules:    Paths_ghc_events
+  autogen-modules:  Paths_ghc_events
 
 test-suite test-versions
   import:           default
diff --git a/include/EventLogFormat.h b/include/EventLogFormat.h
--- a/include/EventLogFormat.h
+++ b/include/EventLogFormat.h
@@ -213,6 +213,7 @@
 #define EVENT_CONC_SWEEP_END               205
 #define EVENT_CONC_UPD_REM_SET_FLUSH       206
 #define EVENT_NONMOVING_HEAP_CENSUS        207
+#define EVENT_NONMOVING_PRUNED_SEGMENTS    208
 
 #define EVENT_TICKY_COUNTER_DEF            210
 #define EVENT_TICKY_COUNTER_SAMPLE         211
diff --git a/src/GHC/RTS/EventTypes.hs b/src/GHC/RTS/EventTypes.hs
--- a/src/GHC/RTS/EventTypes.hs
+++ b/src/GHC/RTS/EventTypes.hs
@@ -435,7 +435,7 @@
                        }
 
   | ProfSampleCostCentre
-                       { profCapset :: !Capset
+                       { profCap :: !CapNo
                        , profTicks :: !Word64
                        , profStackDepth :: !Word8
                        , profCcsStack :: !(VU.Vector Word32)
@@ -457,11 +457,19 @@
   | ConcUpdRemSetFlush { cap    :: {-# UNPACK #-}!Int
                        }
   | NonmovingHeapCensus
-                       { nonmovingCensusBlkSize :: !Word8
+                       { nonmovingCensusBlkSize :: !Word16
                        , nonmovingCensusActiveSegs :: !Word32
                        , nonmovingCensusFilledSegs :: !Word32
                        , nonmovingCensusLiveBlocks :: !Word32
                        }
+  | NonmovingPrunedSegments
+                       { -- | The number of pruned segments.
+                         nonmovingPrunedSegments :: !Word32
+                       -- | The number of leftover free segments.
+                       -- These could not be pruned as they belong to megablocks
+                       -- with at least one non-free segment.
+                       , nonmovingFreeSegments :: !Word32
+                       }
   | TickyCounterDef
                        { tickyCtrDefId      :: !Word64
                        , tickyCtrDefArity   :: !Word16
@@ -633,6 +641,7 @@
   | HeapProfBreakdownBiography
   | HeapProfBreakdownClosureType
   | HeapProfBreakdownInfoTable
+  | HeapProfBreakdownEra
   deriving Show
 
 instance Binary HeapProfBreakdown where
@@ -647,6 +656,7 @@
       6 -> return HeapProfBreakdownBiography
       7 -> return HeapProfBreakdownClosureType
       8 -> return HeapProfBreakdownInfoTable
+      9 -> return HeapProfBreakdownEra
       _ -> fail $ "Unknown HeapProfBreakdown: " ++ show n
   put breakdown = put $ case breakdown of
     HeapProfBreakdownCostCentre -> (1 :: Word32)
@@ -657,6 +667,9 @@
     HeapProfBreakdownBiography -> 6
     HeapProfBreakdownClosureType -> 7
     HeapProfBreakdownInfoTable -> 8
+    HeapProfBreakdownEra -> 9
+
+
 
 newtype HeapProfFlags = HeapProfFlags Word8
   deriving (Show, Binary)
diff --git a/src/GHC/RTS/Events.hs b/src/GHC/RTS/Events.hs
--- a/src/GHC/RTS/Events.hs
+++ b/src/GHC/RTS/Events.hs
@@ -52,6 +52,7 @@
        buildEventTypeMap,
 
        -- * Printing
+       TimeFormat(..),
        printEventsIncremental,
        showEventInfo, buildEventInfo,
        showThreadStopStatus,
@@ -95,11 +96,6 @@
 import GHC.RTS.Events.Binary
 import GHC.RTS.Events.Incremental
 
-#if !MIN_VERSION_base(4, 8, 0)
-import Data.Foldable (foldMap)
-import Data.Monoid (mempty)
-#endif
-
 #if !MIN_VERSION_base(4, 11, 0)
 import Data.Monoid ((<>))
 #endif
@@ -493,7 +489,7 @@
           <> ", label " <> TB.fromText heapProfLabel
 
         ProfSampleCostCentre {..} ->
-          "cap no " <> TB.decimal profCapset
+          "cap no " <> TB.decimal profCap
           <> ", prof sample " <> TB.decimal profTicks
           <> ", cost centre stack " <> buildCostCentreStack profCcsStack
 
@@ -519,10 +515,14 @@
         ConcUpdRemSetFlush {..}  ->
           "update remembered set flushed by " <> TB.decimal cap
         NonmovingHeapCensus {..}  ->
-          "nonmoving heap census " <> TB.decimal (2^nonmovingCensusBlkSize :: Int)
+          "nonmoving heap census " <> TB.decimal nonmovingCensusBlkSize
           <> ": " <> TB.decimal nonmovingCensusActiveSegs <> " active segments"
           <> ", " <> TB.decimal nonmovingCensusFilledSegs <> " filled segments"
           <> ", " <> TB.decimal nonmovingCensusLiveBlocks <> " live blocks"
+        NonmovingPrunedSegments {..} ->
+          "nonmoving segments pruned: "
+           <> TB.decimal nonmovingPrunedSegments <> " pruned segments, "
+           <> TB.decimal nonmovingFreeSegments <> " free segments retained"
         TickyCounterDef {..}  ->
           "ticky counter definition " <> TB.decimal tickyCtrDefId
           <> ", " <>  "arity: " <> TB.decimal tickyCtrDefArity
@@ -542,7 +542,7 @@
   :: Char -- ^ Replacement character
   -> B.ByteString -- ^ Binary message which may contain unprintable bytes
   -> T.Text
-replaceUnprintableWith replacement = T.map replace . TE.decodeUtf8With (\_ _ -> Just replacement) 
+replaceUnprintableWith replacement = T.map replace . TE.decodeUtf8With (\_ _ -> Just replacement)
   where
     replace c
       | isPrint c = c
@@ -596,17 +596,21 @@
   HeapProfBreakdownBiography -> "biography"
   HeapProfBreakdownClosureType -> "closure type"
   HeapProfBreakdownInfoTable -> "info table"
+  HeapProfBreakdownEra -> "era"
 
-ppEventLog :: EventLog -> String
-ppEventLog = TL.unpack . TB.toLazyText . buildEventLog
+-- | How to format event timestamps
+data TimeFormat = RawTime | PrettyTime
 
-buildEventLog :: EventLog -> TB.Builder
-buildEventLog (EventLog (Header ets) (Data es)) =
+ppEventLog :: TimeFormat -> EventLog -> String
+ppEventLog time_fmt = TL.unpack . TB.toLazyText . buildEventLog time_fmt
+
+buildEventLog :: TimeFormat -> EventLog -> TB.Builder
+buildEventLog time_fmt (EventLog (Header ets) (Data es)) =
   "Event Types:\n"
   <> foldMap (\evType -> buildEventType evType <> "\n") ets
   <> "\n"
   <> "Events:\n"
-  <> foldMap (\ev -> buildEvent imap ev <> "\n") sorted
+  <> foldMap (\ev -> buildEvent time_fmt imap ev <> "\n") sorted
   where
     imap = buildEventTypeMap ets
     sorted = sortEvents es
@@ -622,20 +626,45 @@
 
 -- | Pretty prints an 'Event', with clean handling for 'UnknownEvent'
 ppEvent
-  :: IntMap EventType -- ^ Look up @'UnknownEvent'.'ref'@ to find a suitable description.
+  :: TimeFormat
+  -> IntMap EventType -- ^ Look up @'UnknownEvent'.'ref'@ to find a suitable description.
   -> Event
   -> String
-ppEvent imap = TL.unpack . TB.toLazyText . buildEvent imap
+ppEvent time_fmt imap =
+  TL.unpack . TB.toLazyText . buildEvent time_fmt imap
 
-buildEvent :: IntMap EventType -> Event -> TB.Builder
-buildEvent imap Event {..} =
-  TB.decimal evTime
+buildEvent :: TimeFormat -> IntMap EventType -> Event -> TB.Builder
+buildEvent time_fmt imap Event {..} =
+  buildTime time_fmt evTime
   <> ": "
   <> maybe "" (\c -> "cap " <> TB.decimal c <> ": ") evCap
   <> case evSpec of
     UnknownEvent{ ref=ref } ->
       maybe "" (TB.fromText . desc) $ IM.lookup (fromIntegral ref) imap
     _ -> buildEventInfo evSpec
+
+buildTime :: TimeFormat -> Word64 -> TB.Builder
+buildTime RawTime t = TB.decimal t
+buildTime PrettyTime t =
+     rJustDecimal secs  <> "s "
+  <> rJustDecimal msecs <> "ms "
+  <> rJustDecimal usecs
+  <> "."
+  <> lJustDecimal nsecs''  <> "us"
+  where
+    (secs, nsecs) = t `divMod` (1000*1000*1000)
+    (msecs, nsecs') = nsecs `divMod` (1000*1000)
+    (usecs, nsecs'') = nsecs' `divMod` 1000
+
+    padSpaces :: Word64 -> TB.Builder
+    padSpaces n
+      | n < 10    = "  "
+      | n < 100   = " "
+      | otherwise = mempty
+
+    -- decimal numbers justified to three columns
+    rJustDecimal n = padSpaces n <> TB.decimal n
+    lJustDecimal n = TB.decimal n <> padSpaces n
 
 buildEvent' :: Event -> TB.Builder
 buildEvent' Event {..} =
diff --git a/src/GHC/RTS/Events/Binary.hs b/src/GHC/RTS/Events/Binary.hs
--- a/src/GHC/RTS/Events/Binary.hs
+++ b/src/GHC/RTS/Events/Binary.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE TypeApplications #-}
 module GHC.RTS.Events.Binary
   ( -- * Readers
     getHeader
@@ -343,13 +344,27 @@
       cap <- get :: Get CapNo
       return ConcUpdRemSetFlush{ cap = fromIntegral cap }
     )),
+ -- Before GHC issue 23340 event where we are given the logarithm of the block size
  (FixedSizeParser EVENT_NONMOVING_HEAP_CENSUS 13 (do -- (blk_size, active_segs, filled_segs, live_blks)
-      nonmovingCensusBlkSize <- get :: Get Word8
+      nonmovingCensusLogBlkSize <- get :: Get Word8
+      let nonmovingCensusBlkSize = 2^nonmovingCensusLogBlkSize
       nonmovingCensusActiveSegs <- get :: Get Word32
       nonmovingCensusFilledSegs <- get :: Get Word32
       nonmovingCensusLiveBlocks <- get :: Get Word32
       return NonmovingHeapCensus{..}
     )),
+ (FixedSizeParser EVENT_NONMOVING_HEAP_CENSUS 14 (do -- (blk_size, active_segs, filled_segs, live_blks)
+      nonmovingCensusBlkSize <- get :: Get Word16
+      nonmovingCensusActiveSegs <- get :: Get Word32
+      nonmovingCensusFilledSegs <- get :: Get Word32
+      nonmovingCensusLiveBlocks <- get :: Get Word32
+      return NonmovingHeapCensus{..}
+    )),
+ (FixedSizeParser EVENT_NONMOVING_PRUNED_SEGMENTS 8 (do -- (pruned_segments, free_segments)
+      nonmovingPrunedSegments <- get :: Get Word32
+      nonmovingFreeSegments <- get :: Get Word32
+      return NonmovingPrunedSegments{..}
+    )),
 
  (FixedSizeParser EVENT_CREATE_THREAD sz_tid (do  -- (thread)
       t <- get
@@ -742,7 +757,7 @@
     return $! ProfBegin{..}
   , VariableSizeParser EVENT_PROF_SAMPLE_COST_CENTRE $ do
     payloadLen <- get :: Get Word16
-    profCapset <- get
+    profCap <- fromIntegral @Int32 @CapNo <$> get
     profTicks <- get
     profStackDepth <- get
     profCcsStack <- VU.replicateM (fromIntegral profStackDepth) get
@@ -982,6 +997,7 @@
     ConcSweepEnd {} -> EVENT_CONC_SWEEP_END
     ConcUpdRemSetFlush {} -> EVENT_CONC_UPD_REM_SET_FLUSH
     NonmovingHeapCensus {} -> EVENT_NONMOVING_HEAP_CENSUS
+    NonmovingPrunedSegments {} -> EVENT_NONMOVING_PRUNED_SEGMENTS
     TickyCounterDef {} -> EVENT_TICKY_COUNTER_DEF
     TickyCounterSample {} -> EVENT_TICKY_COUNTER_SAMPLE
     InfoTableProv {} -> EVENT_IPE
@@ -1411,7 +1427,7 @@
     putE $ T.unpack heapProfLabel
 
 putEventSpec ProfSampleCostCentre {..} = do
-    putE profCapset
+    putE $ fromIntegral @CapNo @Int16 profCap
     putE profTicks
     putE profStackDepth
     VU.mapM_ putE profCcsStack
@@ -1437,6 +1453,9 @@
     putE nonmovingCensusActiveSegs
     putE nonmovingCensusFilledSegs
     putE nonmovingCensusLiveBlocks
+putEventSpec NonmovingPrunedSegments {..} = do
+    putE nonmovingPrunedSegments
+    putE nonmovingFreeSegments
 putEventSpec TickyCounterDef {..} = do
     putE tickyCtrDefId
     putE tickyCtrDefArity
diff --git a/src/GHC/RTS/Events/Incremental.hs b/src/GHC/RTS/Events/Incremental.hs
--- a/src/GHC/RTS/Events/Incremental.hs
+++ b/src/GHC/RTS/Events/Incremental.hs
@@ -131,10 +131,6 @@
 readEvents header = f . break isLeft . readEvents' header
   where
     f (rs, ls) = (rights rs, listToMaybe (lefts ls))
-#if !MIN_VERSION_base(4, 7, 0)
-    isLeft (Left _) = True
-    isLeft _ = False
-#endif
 
 -- | Read events from a lazy bytestring. It returns an error message if it
 -- encounters an error while decoding the header.
diff --git a/test/TestVersions.hs b/test/TestVersions.hs
--- a/test/TestVersions.hs
+++ b/test/TestVersions.hs
@@ -27,7 +27,7 @@
         Left m -> oops m
         Right newlogdata -> do
             oldlog <- readFile (f ++ ".reference")
-            let newlog = ppEventLog newlogdata ++ "\n" in
+            let newlog = ppEventLog RawTime newlogdata ++ "\n" in
                 if oldlog == newlog
                     then putStrLn (f ++ ": success") >> return True
                     else do putStrLn $ diffLines oldlog newlog
diff --git a/test/Utils.hs b/test/Utils.hs
--- a/test/Utils.hs
+++ b/test/Utils.hs
@@ -4,6 +4,8 @@
 files = map ("test/"++)
     [ "nonmoving-gc.eventlog"
     , "nonmoving-gc-census.eventlog"
+    , "nonmoving-gc-census-T23340.eventlog"
+    , "nonmoving-gc-pruned-segments.eventlog"
     , "parallelTest.eventlog"
     , "sleep.h.eventlog"
     , "sleep.hC.eventlog"
diff --git a/test/nonmoving-gc-census-T23340.eventlog b/test/nonmoving-gc-census-T23340.eventlog
new file mode 100644
Binary files /dev/null and b/test/nonmoving-gc-census-T23340.eventlog differ
diff --git a/test/nonmoving-gc-census-T23340.eventlog.reference b/test/nonmoving-gc-census-T23340.eventlog.reference
new file mode 100644
--- /dev/null
+++ b/test/nonmoving-gc-census-T23340.eventlog.reference
@@ -0,0 +1,231 @@
+Event Types:
+0: Create thread (size 4)
+1: Run thread (size 4)
+2: Stop thread (size 10)
+3: Thread runnable (size 4)
+4: Migrate thread (size 6)
+8: Wakeup thread (size 6)
+9: Starting GC (size 0)
+10: Finished GC (size 0)
+11: Request sequential GC (size 0)
+12: Request parallel GC (size 0)
+15: Create spark thread (size 4)
+16: Log message (size variable)
+18: Block marker (size 14)
+19: User message (size variable)
+20: GC idle (size 0)
+21: GC working (size 0)
+22: GC done (size 0)
+25: Create capability set (size 6)
+26: Delete capability set (size 4)
+27: Add capability to capability set (size 6)
+28: Remove capability from capability set (size 6)
+29: RTS name and version (size variable)
+30: Program arguments (size variable)
+31: Program environment variables (size variable)
+32: Process ID (size 8)
+33: Parent process ID (size 8)
+34: Spark counters (size 56)
+35: Spark create (size 0)
+36: Spark dud (size 0)
+37: Spark overflow (size 0)
+38: Spark run (size 0)
+39: Spark steal (size 2)
+40: Spark fizzle (size 0)
+41: Spark GC (size 0)
+42: Intern string (size variable)
+43: Wall clock time (size 16)
+44: Thread label (size variable)
+45: Create capability (size 2)
+46: Delete capability (size 2)
+47: Disable capability (size 2)
+48: Enable capability (size 2)
+49: Total heap memory ever allocated (size 12)
+50: Current heap size (number of allocated mblocks) (size 12)
+51: Current heap live data (size 12)
+52: Heap static parameters (size 38)
+53: GC statistics (size 58)
+54: Synchronise stop-the-world GC (size 0)
+55: Task create (size 18)
+56: Task migrate (size 12)
+57: Task delete (size 8)
+58: User marker (size variable)
+59: Empty event for bug #9003 (size 0)
+90: The RTS attempted to return heap memory to the OS (size 16)
+91: Report the size of the heap in blocks (size 12)
+160: Start of heap profile (size variable)
+161: Cost-centre definition (size variable)
+162: Start of heap profile sample (size 8)
+163: Heap profile cost-centre sample (size variable)
+164: Heap profile string sample (size variable)
+165: End of heap profile sample (size 8)
+166: Start of heap profile (biographical) sample (size 16)
+167: Time profile cost-centre stack (size variable)
+168: Start of a time profile (size 8)
+169: An IPE entry (size variable)
+181: User binary message (size variable)
+200: Begin concurrent mark phase (size 0)
+201: End concurrent mark phase (size 4)
+202: Begin concurrent GC synchronisation (size 0)
+203: End concurrent mark synchronisation (size 0)
+204: Begin concurrent sweep phase (size 0)
+205: End concurrent sweep phase (size 0)
+206: Update remembered set flushed (size 2)
+207: Nonmoving heap census (size 14)
+210: Ticky-ticky entry counter definition (size variable)
+211: Ticky-ticky entry counter sample (size 32)
+212: Ticky-ticky entry counter begin sample (size 0)
+
+Events:
+219698: capset 1: wall clock time 1694431580s 894343000ns (unix epoch)
+220498: capset 0: pid 2073360
+221298: capset 0: parent pid 1906706
+222298: capset 0: RTS version "GHC-9.9.20230901 rts_v"
+222498: capset 0: args: ["nofib/shootout/binary-trees/Main","15","11","+RTS","-xn","-l-an"]
+3158969: Starting nonmoving GC preparation
+3161769: Marking roots for nonmoving GC
+3162369: Finished marking roots for nonmoving GC
+3162369: Finished nonmoving GC preparation
+3165069: concurrent mark began
+3483866: concurrent mark ended: marked 2789 objects
+3484166: concurrent mark began
+3484166: concurrent mark ended: marked 1 objects
+3484266: concurrent mark began
+3484266: concurrent mark ended: marked 1 objects
+3490366: concurrent sweep began
+3490566: concurrent sweep ended
+3493366: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+3494866: nonmoving heap census 16: 0 active segments, 0 filled segments, 38 live blocks
+3495766: nonmoving heap census 24: 0 active segments, 0 filled segments, 99 live blocks
+3496466: nonmoving heap census 32: 0 active segments, 0 filled segments, 5 live blocks
+3496966: nonmoving heap census 40: 0 active segments, 0 filled segments, 0 live blocks
+3497466: nonmoving heap census 48: 0 active segments, 0 filled segments, 0 live blocks
+3498166: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+3499866: nonmoving heap census 64: 0 active segments, 0 filled segments, 0 live blocks
+3500366: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+3527666: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+3527866: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+3528366: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+3528766: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+3529066: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+3529366: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+3529566: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+3529866: nonmoving heap census 256: 0 active segments, 0 filled segments, 0 live blocks
+3529966: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+3530066: nonmoving heap census 1024: 0 active segments, 0 filled segments, 0 live blocks
+3530166: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+3530266: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+3530466: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+3530566: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+30946697: Starting nonmoving GC preparation
+30949497: Marking roots for nonmoving GC
+30949997: Finished marking roots for nonmoving GC
+30950097: Finished nonmoving GC preparation
+30957296: concurrent mark began
+31188794: concurrent mark ended: marked 10999 objects
+31188894: concurrent mark began
+31189694: concurrent mark ended: marked 12 objects
+31189794: concurrent mark began
+31189794: concurrent mark ended: marked 1 objects
+31189794: concurrent mark began
+31189894: concurrent mark ended: marked 1 objects
+31190794: concurrent sweep began
+31230594: concurrent sweep ended
+31232294: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+31233394: nonmoving heap census 16: 0 active segments, 0 filled segments, 54 live blocks
+31234094: nonmoving heap census 24: 0 active segments, 0 filled segments, 120 live blocks
+31236194: nonmoving heap census 32: 2 active segments, 4 filled segments, 4100 live blocks
+31236594: nonmoving heap census 40: 0 active segments, 0 filled segments, 1 live blocks
+31236994: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+31237294: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+31237594: nonmoving heap census 64: 0 active segments, 0 filled segments, 2 live blocks
+31237894: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+31238094: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+31238394: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+31238694: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+31238894: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+31239094: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+31239394: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+31239594: nonmoving heap census 128: 0 active segments, 0 filled segments, 1 live blocks
+31239694: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
+31239794: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+31239894: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+31239994: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+31240094: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+31240294: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+31240294: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+58695524: Starting nonmoving GC preparation
+58698024: Marking roots for nonmoving GC
+58698924: Finished marking roots for nonmoving GC
+58699024: Finished nonmoving GC preparation
+58708324: concurrent mark began
+58950222: concurrent mark ended: marked 10996 objects
+58950422: concurrent mark began
+58951222: concurrent mark ended: marked 12 objects
+58951222: concurrent mark began
+58951322: concurrent mark ended: marked 1 objects
+58951322: concurrent mark began
+58951322: concurrent mark ended: marked 1 objects
+58952922: concurrent sweep began
+58992921: concurrent sweep ended
+58995021: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+58996121: nonmoving heap census 16: 0 active segments, 0 filled segments, 54 live blocks
+58996721: nonmoving heap census 24: 0 active segments, 0 filled segments, 120 live blocks
+58998821: nonmoving heap census 32: 2 active segments, 4 filled segments, 4100 live blocks
+58999321: nonmoving heap census 40: 0 active segments, 0 filled segments, 1 live blocks
+58999821: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+59000121: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+59000421: nonmoving heap census 64: 0 active segments, 0 filled segments, 2 live blocks
+59000721: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+59001021: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+59001321: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+59001721: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+59001921: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+59002221: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+59002421: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+59002621: nonmoving heap census 128: 0 active segments, 0 filled segments, 1 live blocks
+59002821: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
+59002921: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+59003021: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+59003121: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+59003221: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+59003421: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+59003421: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+60250409: Starting nonmoving GC preparation
+60251309: Marking roots for nonmoving GC
+60251709: Finished marking roots for nonmoving GC
+60251709: Finished nonmoving GC preparation
+60252909: concurrent mark began
+60308008: concurrent mark ended: marked 1897 objects
+60308108: concurrent mark began
+60308508: concurrent mark ended: marked 8 objects
+60308608: concurrent mark began
+60308708: concurrent mark ended: marked 1 objects
+60308708: concurrent mark began
+60308808: concurrent mark ended: marked 2 objects
+60309608: concurrent sweep began
+60314808: concurrent sweep ended
+60316708: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+60317708: nonmoving heap census 16: 0 active segments, 0 filled segments, 55 live blocks
+60318408: nonmoving heap census 24: 0 active segments, 0 filled segments, 121 live blocks
+60320508: nonmoving heap census 32: 2 active segments, 0 filled segments, 37 live blocks
+60320908: nonmoving heap census 40: 0 active segments, 0 filled segments, 1 live blocks
+60321408: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+60321708: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+60322008: nonmoving heap census 64: 0 active segments, 0 filled segments, 2 live blocks
+60322308: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+60322608: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+60322808: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+60323408: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+60323608: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+60323808: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+60324008: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+60324208: nonmoving heap census 128: 0 active segments, 0 filled segments, 1 live blocks
+60324408: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
+60324508: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+60324608: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+60324708: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+60324808: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+60324808: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+60324908: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+
diff --git a/test/nonmoving-gc-pruned-segments.eventlog b/test/nonmoving-gc-pruned-segments.eventlog
new file mode 100644
Binary files /dev/null and b/test/nonmoving-gc-pruned-segments.eventlog differ
diff --git a/test/nonmoving-gc-pruned-segments.eventlog.reference b/test/nonmoving-gc-pruned-segments.eventlog.reference
new file mode 100644
--- /dev/null
+++ b/test/nonmoving-gc-pruned-segments.eventlog.reference
@@ -0,0 +1,604 @@
+Event Types:
+0: Create thread (size 4)
+1: Run thread (size 4)
+2: Stop thread (size 10)
+3: Thread runnable (size 4)
+4: Migrate thread (size 6)
+8: Wakeup thread (size 6)
+9: Starting GC (size 0)
+10: Finished GC (size 0)
+11: Request sequential GC (size 0)
+12: Request parallel GC (size 0)
+15: Create spark thread (size 4)
+16: Log message (size variable)
+18: Block marker (size 14)
+19: User message (size variable)
+20: GC idle (size 0)
+21: GC working (size 0)
+22: GC done (size 0)
+25: Create capability set (size 6)
+26: Delete capability set (size 4)
+27: Add capability to capability set (size 6)
+28: Remove capability from capability set (size 6)
+29: RTS name and version (size variable)
+30: Program arguments (size variable)
+31: Program environment variables (size variable)
+32: Process ID (size 8)
+33: Parent process ID (size 8)
+34: Spark counters (size 56)
+35: Spark create (size 0)
+36: Spark dud (size 0)
+37: Spark overflow (size 0)
+38: Spark run (size 0)
+39: Spark steal (size 2)
+40: Spark fizzle (size 0)
+41: Spark GC (size 0)
+42: Intern string (size variable)
+43: Wall clock time (size 16)
+44: Thread label (size variable)
+45: Create capability (size 2)
+46: Delete capability (size 2)
+47: Disable capability (size 2)
+48: Enable capability (size 2)
+49: Total heap memory ever allocated (size 12)
+50: Current heap size (number of allocated mblocks) (size 12)
+51: Current heap live data (size 12)
+52: Heap static parameters (size 38)
+53: GC statistics (size 58)
+54: Synchronise stop-the-world GC (size 0)
+55: Task create (size 18)
+56: Task migrate (size 12)
+57: Task delete (size 8)
+58: User marker (size variable)
+59: Empty event for bug #9003 (size 0)
+90: The RTS attempted to return heap memory to the OS (size 16)
+91: Report the size of the heap in blocks (size 12)
+160: Start of heap profile (size variable)
+161: Cost-centre definition (size variable)
+162: Start of heap profile sample (size 8)
+163: Heap profile cost-centre sample (size variable)
+164: Heap profile string sample (size variable)
+165: End of heap profile sample (size 8)
+166: Start of heap profile (biographical) sample (size 16)
+167: Time profile cost-centre stack (size variable)
+168: Start of a time profile (size 8)
+169: An IPE entry (size variable)
+181: User binary message (size variable)
+200: Begin concurrent mark phase (size 0)
+201: End concurrent mark phase (size 4)
+202: Begin concurrent GC synchronisation (size 0)
+203: End concurrent mark synchronisation (size 0)
+204: Begin concurrent sweep phase (size 0)
+205: End concurrent sweep phase (size 0)
+206: Update remembered set flushed (size 2)
+207: Nonmoving heap census (size 14)
+208: Report the amount of segments pruned and remaining on the free list. (size 8)
+210: Ticky-ticky entry counter definition (size variable)
+211: Ticky-ticky entry counter sample (size 32)
+212: Ticky-ticky entry counter begin sample (size 0)
+
+Events:
+101786: capset 1: wall clock time 1723223845s 324076000ns (unix epoch)
+102167: capset 0: pid 1828277
+102377: capset 0: parent pid 74621
+103208: capset 0: RTS version "GHC-9.11.20240805 rts_v"
+103419: capset 0: args: ["nofib/shootout/binary-trees/Main","15","11","+RTS","-xn","-l-an"]
+2555721: Starting nonmoving GC preparation
+2557364: Marking roots for nonmoving GC
+2557755: Finished marking roots for nonmoving GC
+2557805: Finished nonmoving GC preparation
+2560339: concurrent mark began
+2694408: concurrent mark ended: marked 9016 objects
+2694508: concurrent mark began
+2694558: concurrent mark ended: marked 1 objects
+2694588: concurrent mark began
+2694618: concurrent mark ended: marked 1 objects
+2696621: concurrent sweep began
+2696882: Pruning free segment list.
+2697693: nonmoving segments pruned: 0 pruned segments, 8 free segments retained
+2697884: Finished pruning free segment list.
+2697924: concurrent sweep ended
+2699576: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+2700488: nonmoving heap census 16: 0 active segments, 0 filled segments, 36 live blocks
+2701089: nonmoving heap census 24: 0 active segments, 0 filled segments, 54 live blocks
+2701740: nonmoving heap census 32: 0 active segments, 0 filled segments, 7 live blocks
+2702110: nonmoving heap census 40: 0 active segments, 0 filled segments, 1 live blocks
+2702441: nonmoving heap census 48: 0 active segments, 0 filled segments, 0 live blocks
+2702721: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+2702962: nonmoving heap census 64: 0 active segments, 0 filled segments, 0 live blocks
+2703182: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+2703382: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+2703563: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+2703743: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+2703903: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+2704054: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+2704204: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+2704334: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+2704424: nonmoving heap census 256: 0 active segments, 0 filled segments, 0 live blocks
+2704484: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+2704534: nonmoving heap census 1024: 0 active segments, 0 filled segments, 0 live blocks
+2704574: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+2704604: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+2704645: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+2704685: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+22539730: Starting nonmoving GC preparation
+22541132: Marking roots for nonmoving GC
+22541483: Finished marking roots for nonmoving GC
+22541683: Finished nonmoving GC preparation
+22545680: concurrent mark began
+22888589: concurrent mark ended: marked 22658 objects
+22889000: concurrent mark began
+22889531: concurrent mark ended: marked 12 objects
+22889581: concurrent mark began
+22889621: concurrent mark ended: marked 1 objects
+22889651: concurrent mark began
+22889671: concurrent mark ended: marked 1 objects
+22890342: concurrent sweep began
+22910395: Pruning free segment list.
+22912178: nonmoving segments pruned: 0 pruned segments, 20 free segments retained
+22912388: Finished pruning free segment list.
+22912438: concurrent sweep ended
+22914211: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+22918007: nonmoving heap census 16: 5 active segments, 2 filled segments, 5131 live blocks
+22918789: nonmoving heap census 24: 0 active segments, 0 filled segments, 66 live blocks
+22921343: nonmoving heap census 32: 6 active segments, 3 filled segments, 4419 live blocks
+22922325: nonmoving heap census 40: 2 active segments, 1 filled segments, 1685 live blocks
+22923006: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+22923466: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+22923877: nonmoving heap census 64: 0 active segments, 0 filled segments, 3 live blocks
+22924258: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+22924598: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+22924859: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+22925169: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+22925460: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+22925760: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+22925910: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+22926141: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+22926231: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+22926431: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+22926501: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+22926551: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+22926592: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+22926632: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+22926672: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+41478393: Starting nonmoving GC preparation
+41479585: Marking roots for nonmoving GC
+41479945: Finished marking roots for nonmoving GC
+41479995: Finished nonmoving GC preparation
+41483541: concurrent mark began
+41781447: concurrent mark ended: marked 19575 objects
+41781577: concurrent mark began
+41782158: concurrent mark ended: marked 12 objects
+41782218: concurrent mark began
+41782238: concurrent mark ended: marked 1 objects
+41782269: concurrent mark began
+41782299: concurrent mark ended: marked 1 objects
+41783010: concurrent sweep began
+41801550: Pruning free segment list.
+41802722: nonmoving segments pruned: 0 pruned segments, 21 free segments retained
+41802912: Finished pruning free segment list.
+41802952: concurrent sweep ended
+41804745: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+41809243: nonmoving heap census 16: 6 active segments, 0 filled segments, 4429 live blocks
+41809894: nonmoving heap census 24: 0 active segments, 0 filled segments, 71 live blocks
+41813129: nonmoving heap census 32: 7 active segments, 3 filled segments, 4789 live blocks
+41813940: nonmoving heap census 40: 2 active segments, 0 filled segments, 417 live blocks
+41814461: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+41814902: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+41815332: nonmoving heap census 64: 0 active segments, 0 filled segments, 4 live blocks
+41815723: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+41816084: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+41816374: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+41816705: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+41816865: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+41817155: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+41817306: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+41817696: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+41817786: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+41817967: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+41818037: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+41818097: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+41818127: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+41818167: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+41818197: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+72438908: Starting nonmoving GC preparation
+72440180: Marking roots for nonmoving GC
+72440781: Finished marking roots for nonmoving GC
+72440841: Finished nonmoving GC preparation
+72444477: concurrent mark began
+72777110: concurrent mark ended: marked 31191 objects
+72777410: concurrent mark began
+72778031: concurrent mark ended: marked 12 objects
+72778091: concurrent mark began
+72778121: concurrent mark ended: marked 1 objects
+72778151: concurrent mark began
+72778181: concurrent mark ended: marked 1 objects
+72778913: concurrent sweep began
+72801299: Pruning free segment list.
+72803242: nonmoving segments pruned: 0 pruned segments, 17 free segments retained
+72803382: Finished pruning free segment list.
+72803423: concurrent sweep ended
+72805115: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+72809943: nonmoving heap census 16: 6 active segments, 2 filled segments, 6422 live blocks
+72810634: nonmoving heap census 24: 0 active segments, 0 filled segments, 76 live blocks
+72812668: nonmoving heap census 32: 5 active segments, 6 filled segments, 6513 live blocks
+72813649: nonmoving heap census 40: 2 active segments, 1 filled segments, 1510 live blocks
+72814270: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+72814641: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+72814931: nonmoving heap census 64: 0 active segments, 0 filled segments, 5 live blocks
+72815232: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+72815703: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+72815963: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+72816203: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+72816444: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+72816734: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+72816955: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+72817165: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+72817265: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+72817405: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+72817486: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+72817536: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+72817576: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+72817616: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+72817656: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+91259898: Starting nonmoving GC preparation
+91260679: Marking roots for nonmoving GC
+91260960: Finished marking roots for nonmoving GC
+91261010: Finished nonmoving GC preparation
+91263424: concurrent mark began
+91549080: concurrent mark ended: marked 24061 objects
+91549220: concurrent mark began
+91549651: concurrent mark ended: marked 12 objects
+91549701: concurrent mark began
+91549731: concurrent mark ended: marked 1 objects
+91549761: concurrent mark began
+91552576: concurrent mark ended: marked 1 objects
+91553307: concurrent sweep began
+91570916: Pruning free segment list.
+91572398: nonmoving segments pruned: 0 pruned segments, 20 free segments retained
+91572618: Finished pruning free segment list.
+91572648: concurrent sweep ended
+91574441: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+91580521: nonmoving heap census 16: 8 active segments, 0 filled segments, 5506 live blocks
+91581182: nonmoving heap census 24: 0 active segments, 0 filled segments, 81 live blocks
+91583466: nonmoving heap census 32: 5 active segments, 3 filled segments, 4768 live blocks
+91584338: nonmoving heap census 40: 2 active segments, 1 filled segments, 1554 live blocks
+91584778: nonmoving heap census 48: 0 active segments, 0 filled segments, 3 live blocks
+91585159: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+91585509: nonmoving heap census 64: 0 active segments, 0 filled segments, 6 live blocks
+91585820: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+91586411: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+91586671: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+91586932: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+91587092: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+91587312: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+91587473: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+91587673: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+91587773: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+91588004: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+91588074: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+91588114: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+91588144: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+91588184: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+91588214: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+109396151: Starting nonmoving GC preparation
+109396682: Marking roots for nonmoving GC
+109397032: Finished marking roots for nonmoving GC
+109397082: Finished nonmoving GC preparation
+109398865: concurrent mark began
+109643645: concurrent mark ended: marked 22521 objects
+109643765: concurrent mark began
+109644206: concurrent mark ended: marked 12 objects
+109644256: concurrent mark began
+109644286: concurrent mark ended: marked 1 objects
+109644316: concurrent mark began
+109644346: concurrent mark ended: marked 1 objects
+109644947: concurrent sweep began
+109662405: Pruning free segment list.
+109664198: nonmoving segments pruned: 0 pruned segments, 24 free segments retained
+109664359: Finished pruning free segment list.
+109664389: concurrent sweep ended
+109666121: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+109671019: nonmoving heap census 16: 6 active segments, 0 filled segments, 4389 live blocks
+109672061: nonmoving heap census 24: 1 active segments, 0 filled segments, 116 live blocks
+109674155: nonmoving heap census 32: 4 active segments, 2 filled segments, 4879 live blocks
+109675046: nonmoving heap census 40: 2 active segments, 0 filled segments, 385 live blocks
+109675457: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+109675817: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+109676158: nonmoving heap census 64: 0 active segments, 0 filled segments, 7 live blocks
+109676388: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+109676689: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+109676879: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+109677159: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+109677320: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+109677560: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+109677710: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+109678041: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+109678131: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+109678271: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+109678341: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+109678381: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+109678412: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+109678452: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+109678482: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+138593538: Starting nonmoving GC preparation
+138594129: Marking roots for nonmoving GC
+138594500: Finished marking roots for nonmoving GC
+138594550: Finished nonmoving GC preparation
+138597354: concurrent mark began
+138936037: concurrent mark ended: marked 32211 objects
+138936277: concurrent mark began
+138936748: concurrent mark ended: marked 12 objects
+138936798: concurrent mark began
+138936828: concurrent mark ended: marked 1 objects
+138936858: concurrent mark began
+138936888: concurrent mark ended: marked 1 objects
+138937630: concurrent sweep began
+138959185: Pruning free segment list.
+138961308: nonmoving segments pruned: 0 pruned segments, 46 free segments retained
+138961448: Finished pruning free segment list.
+138961489: concurrent sweep ended
+138963211: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+138968931: nonmoving heap census 16: 7 active segments, 1 filled segments, 6353 live blocks
+138970002: nonmoving heap census 24: 1 active segments, 0 filled segments, 111 live blocks
+138972296: nonmoving heap census 32: 6 active segments, 6 filled segments, 6863 live blocks
+138973258: nonmoving heap census 40: 2 active segments, 1 filled segments, 1685 live blocks
+138973618: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+138974129: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+138974510: nonmoving heap census 64: 0 active segments, 0 filled segments, 8 live blocks
+138974770: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+138975011: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+138975201: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+138975411: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+138975572: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+138975812: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+138975962: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+138976142: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+138976233: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+138976383: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+138976453: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+138976513: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+138976543: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+138976583: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+138976623: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+155707612: Starting nonmoving GC preparation
+155708243: Marking roots for nonmoving GC
+155708624: Finished marking roots for nonmoving GC
+155708674: Finished nonmoving GC preparation
+155710487: concurrent mark began
+156024900: concurrent mark ended: marked 30374 objects
+156025321: concurrent mark began
+156025772: concurrent mark ended: marked 12 objects
+156025822: concurrent mark began
+156025842: concurrent mark ended: marked 1 objects
+156025872: concurrent mark began
+156025902: concurrent mark ended: marked 1 objects
+156026513: concurrent sweep began
+156042409: Pruning free segment list.
+156045033: nonmoving segments pruned: 0 pruned segments, 52 free segments retained
+156045113: Finished pruning free segment list.
+156045153: concurrent sweep ended
+156046876: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+156051804: nonmoving heap census 16: 7 active segments, 1 filled segments, 6047 live blocks
+156052816: nonmoving heap census 24: 1 active segments, 0 filled segments, 126 live blocks
+156054619: nonmoving heap census 32: 3 active segments, 4 filled segments, 6339 live blocks
+156055630: nonmoving heap census 40: 2 active segments, 0 filled segments, 1729 live blocks
+156056001: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+156056382: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+156056722: nonmoving heap census 64: 0 active segments, 0 filled segments, 9 live blocks
+156056983: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+156057193: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+156057393: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+156057564: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+156057734: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+156057974: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+156058124: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+156058335: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+156058435: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+156058585: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+156058655: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+156058715: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+156058755: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+156058786: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+156058826: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+173702434: Starting nonmoving GC preparation
+173702805: Marking roots for nonmoving GC
+173703055: Finished marking roots for nonmoving GC
+173703105: Finished nonmoving GC preparation
+173704768: concurrent mark began
+173962088: concurrent mark ended: marked 23290 objects
+173962238: concurrent mark began
+173962639: concurrent mark ended: marked 12 objects
+173962689: concurrent mark began
+173962719: concurrent mark ended: marked 1 objects
+173962749: concurrent mark began
+173962769: concurrent mark ended: marked 1 objects
+173963420: concurrent sweep began
+173979376: Pruning free segment list.
+173981349: nonmoving segments pruned: 0 pruned segments, 46 free segments retained
+173981410: Finished pruning free segment list.
+173981450: concurrent sweep ended
+173983122: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+173989693: nonmoving heap census 16: 9 active segments, 0 filled segments, 5437 live blocks
+173990705: nonmoving heap census 24: 1 active segments, 0 filled segments, 121 live blocks
+173993770: nonmoving heap census 32: 8 active segments, 3 filled segments, 4594 live blocks
+173994771: nonmoving heap census 40: 2 active segments, 1 filled segments, 1467 live blocks
+173995122: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+173997876: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+173998237: nonmoving heap census 64: 0 active segments, 0 filled segments, 10 live blocks
+173998487: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+173998698: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+173998898: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+173999078: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+173999249: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+173999419: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+173999569: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+173999709: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+173999810: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+173999940: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+174000020: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+174000060: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+174000080: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+174000120: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+174000160: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+191806164: Starting nonmoving GC preparation
+191806835: Marking roots for nonmoving GC
+191807226: Finished marking roots for nonmoving GC
+191807406: Finished nonmoving GC preparation
+191809640: concurrent mark began
+192043932: concurrent mark ended: marked 19740 objects
+192044212: concurrent mark began
+192044613: concurrent mark ended: marked 12 objects
+192044653: concurrent mark began
+192044874: concurrent mark ended: marked 1 objects
+192044904: concurrent mark began
+192044934: concurrent mark ended: marked 1 objects
+192045525: concurrent sweep began
+192062733: Pruning free segment list.
+192065848: nonmoving segments pruned: 0 pruned segments, 56 free segments retained
+192065918: Finished pruning free segment list.
+192065938: concurrent sweep ended
+192067671: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+192071747: nonmoving heap census 16: 5 active segments, 0 filled segments, 4408 live blocks
+192072799: nonmoving heap census 24: 1 active segments, 0 filled segments, 136 live blocks
+192074702: nonmoving heap census 32: 4 active segments, 3 filled segments, 4832 live blocks
+192075303: nonmoving heap census 40: 1 active segments, 0 filled segments, 439 live blocks
+192075704: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+192076044: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+192076425: nonmoving heap census 64: 0 active segments, 0 filled segments, 11 live blocks
+192076696: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+192077046: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+192077236: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+192077417: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+192077587: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+192077928: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+192078078: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+192078248: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+192078338: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+192078468: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+192078528: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+192078559: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+192078599: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+192078629: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+192078659: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+221422255: Starting nonmoving GC preparation
+221423346: Marking roots for nonmoving GC
+221423617: Finished marking roots for nonmoving GC
+221423857: Finished nonmoving GC preparation
+221428385: concurrent mark began
+221802014: concurrent mark ended: marked 31805 objects
+221802125: concurrent mark began
+221802776: concurrent mark ended: marked 12 objects
+221802826: concurrent mark began
+221802846: concurrent mark ended: marked 1 objects
+221802876: concurrent mark began
+221802906: concurrent mark ended: marked 1 objects
+221804148: concurrent sweep began
+221829650: Pruning free segment list.
+221834347: nonmoving segments pruned: 0 pruned segments, 48 free segments retained
+221834558: Finished pruning free segment list.
+221834598: concurrent sweep ended
+221836671: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+221841299: nonmoving heap census 16: 6 active segments, 1 filled segments, 6422 live blocks
+221842380: nonmoving heap census 24: 1 active segments, 0 filled segments, 84 live blocks
+221844854: nonmoving heap census 32: 6 active segments, 5 filled segments, 6689 live blocks
+221845836: nonmoving heap census 40: 2 active segments, 1 filled segments, 1598 live blocks
+221846387: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+221846858: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+221847318: nonmoving heap census 64: 0 active segments, 0 filled segments, 12 live blocks
+221847929: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+221848260: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+221848450: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+221848761: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+221848921: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+221849201: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+221849472: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+221849752: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+221849842: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+221850033: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+221850103: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+221850143: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+221850183: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+221850223: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+221850253: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+238687005: Starting nonmoving GC preparation
+238687856: Marking roots for nonmoving GC
+238688207: Finished marking roots for nonmoving GC
+238688327: Finished nonmoving GC preparation
+238691402: concurrent mark began
+239025447: concurrent mark ended: marked 32121 objects
+239025637: concurrent mark began
+239026128: concurrent mark ended: marked 12 objects
+239026178: concurrent mark began
+239026208: concurrent mark ended: marked 1 objects
+239026238: concurrent mark began
+239026268: concurrent mark ended: marked 1 objects
+239027010: concurrent sweep began
+239043256: Pruning free segment list.
+239046612: nonmoving segments pruned: 0 pruned segments, 50 free segments retained
+239046752: Finished pruning free segment list.
+239046792: concurrent sweep ended
+239048615: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+239053703: nonmoving heap census 16: 7 active segments, 1 filled segments, 6422 live blocks
+239054965: nonmoving heap census 24: 1 active segments, 0 filled segments, 79 live blocks
+239056898: nonmoving heap census 32: 4 active segments, 5 filled segments, 6776 live blocks
+239057960: nonmoving heap census 40: 2 active segments, 0 filled segments, 1642 live blocks
+239058351: nonmoving heap census 48: 0 active segments, 0 filled segments, 4 live blocks
+239058701: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+239059082: nonmoving heap census 64: 0 active segments, 0 filled segments, 13 live blocks
+239059443: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+239059823: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+239060054: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+239060294: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+239060725: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+239060945: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+239061145: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+239061366: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+239061456: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+239061576: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+239061696: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+239061736: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+239061776: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+239061806: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+239061847: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+253385967: Starting nonmoving GC preparation
+253386318: Marking roots for nonmoving GC
+253386568: Finished marking roots for nonmoving GC
+253386628: Finished nonmoving GC preparation
+253387790: concurrent mark began
+253445725: concurrent mark ended: marked 3035 objects
+253445835: concurrent mark began
+253446145: concurrent mark ended: marked 8 objects
+253446215: concurrent mark began
+253446245: concurrent mark ended: marked 1 objects
+253446286: concurrent mark began
+253446346: concurrent mark ended: marked 2 objects
+253446746: concurrent sweep began
+253453457: Pruning free segment list.
+253455751: nonmoving segments pruned: 0 pruned segments, 59 free segments retained
+253455801: Finished pruning free segment list.
+253455831: concurrent sweep ended
+253457514: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
+253462141: nonmoving heap census 16: 5 active segments, 0 filled segments, 63 live blocks
+253463383: nonmoving heap census 24: 1 active segments, 0 filled segments, 145 live blocks
+253465547: nonmoving heap census 32: 4 active segments, 0 filled segments, 134 live blocks
+253466338: nonmoving heap census 40: 1 active segments, 0 filled segments, 501 live blocks
+253466699: nonmoving heap census 48: 0 active segments, 0 filled segments, 5 live blocks
+253467079: nonmoving heap census 56: 0 active segments, 0 filled segments, 0 live blocks
+253467350: nonmoving heap census 64: 0 active segments, 0 filled segments, 13 live blocks
+253467600: nonmoving heap census 72: 0 active segments, 0 filled segments, 0 live blocks
+253467821: nonmoving heap census 80: 0 active segments, 0 filled segments, 0 live blocks
+253468011: nonmoving heap census 88: 0 active segments, 0 filled segments, 0 live blocks
+253468191: nonmoving heap census 96: 0 active segments, 0 filled segments, 0 live blocks
+253468352: nonmoving heap census 104: 0 active segments, 0 filled segments, 0 live blocks
+253468512: nonmoving heap census 112: 0 active segments, 0 filled segments, 0 live blocks
+253468652: nonmoving heap census 120: 0 active segments, 0 filled segments, 0 live blocks
+253468792: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
+253468882: nonmoving heap census 256: 0 active segments, 0 filled segments, 2 live blocks
+253468953: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
+253473530: nonmoving heap census 1024: 0 active segments, 0 filled segments, 1 live blocks
+253473580: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
+253473630: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
+253473680: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
+253473730: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
+
