packages feed

threadscope 0.2.3 → 0.2.4

raw patch · 2 files changed

+34/−5 lines, 2 files

Files

GUI/SummaryView.hs view
@@ -835,9 +835,38 @@                   ModeIdle -> dGC                   -- Impossible.                   ModeInit  -> error "scanEvents: GCStatsGHC ModeInit"-                  ModeStart -> error "scanEvents: GCStatsGHC ModeStart"                   ModeGHC{} -> error "scanEvents: GCStatsGHC ModeGHC"-                  ModeEnd   -> error "scanEvents: GCStatsGHC ModeEnd"+                  -- The last two cases are copied from case @GlobalSyncGC@+                  -- to work around low-resolution timestamps (#35).+                  -- Normally, these states would be impossible here, because+                  -- @GlobalSyncGC@ would already transition away from these+                  -- states. But if @GlobalSyncGC@ comes too early, the states+                  -- can appear here. The computed stats are usually only+                  -- slightly different than if @GlobalSyncGC@ made the state+                  -- transitions, because the timestamps of @GCStatsGHC@+                  -- and @GlobalSyncGC@ are normally only slightly different.+                  --+                  -- Cap takes part in the GC (not known if seq or par).+                  -- Here is the moment where all caps taking place in the GC+                  -- are identified and we can aggregate all their data+                  -- at once (currently we just increment a counter for each).+                  -- The EndGC events can come much later for some caps and at+                  -- that time other caps are already inside their new GC.+                  ModeStart ->+                    dGC { gcMode = ModeSync cap+                        , gcGenStat =+                            if capKey == cap+                            then IM.insert gcGenTot+                                   totGC{ gcAll = gcAll totGC + 1 }+                                   gcGenStat+                            else gcGenStat+                        }+                  -- Cap is not in the GC. Mark it as idle to complete+                  -- the identification of caps that take part+                  -- in the current GC. Without overwritin the mode,+                  -- the cap could be processed later on as if+                  -- it took part in the GC, giving wrong results.+                  ModeEnd  -> dGC { gcMode = ModeIdle }           EndGC ->             assert (gcMode capGC `notElem` [ModeEnd, ModeIdle]) $             let endedGC = capGC { gcMode = ModeEnd }
threadscope.cabal view
@@ -1,5 +1,5 @@ Name:                threadscope-Version:             0.2.3+Version:             0.2.4 Category:            Development, Profiling, Trace Synopsis:            A graphical tool for profiling parallel Haskell programs. Description:         ThreadScope is a graphical viewer for thread profile@@ -17,7 +17,7 @@                      2009-2011 Simon Marlow,                      2009 Donnie Jones,                      2011-2012 Duncan Coutts,-                     2011-2012 Mikolaj Konarski,+                     2011-2014 Mikolaj Konarski,                      2011 Nicolas Wu,                      2011 Eric Kow Author:              Satnam Singh <s.singh@ieee.org>,@@ -29,7 +29,7 @@                      Eric Kow <eric@well-typed.com> Maintainer:          Simon Marlow <marlowsd@gmail.com> Homepage:            http://www.haskell.org/haskellwiki/ThreadScope-Bug-reports:         http://trac.haskell.org/ThreadScope/+Bug-reports:         https://github.com/haskell/ThreadScope/issues Build-Type:          Simple Cabal-version:       >= 1.6 Data-files:          threadscope.ui, threadscope.png