eventlog2html 0.11.1 → 0.12.0
raw patch · 7 files changed
+30/−13 lines, 7 filesdep ~ghc-eventsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghc-events
API changes (from Hackage documentation)
- Eventlog.Types: [tickyCtrSampleId, tickyCtrEntries, tickyCtrAllocs, tickyCtrAllocd] :: TickySample -> Word64
+ Eventlog.Types: FromEventlog :: Maybe HeapProfBreakdown -> ProfileType
+ Eventlog.Types: FromHPFile :: ProfileType
+ Eventlog.Types: HeapProfBreakdownEra :: HeapProfBreakdown
+ Eventlog.Types: [tickyCtrAllocd] :: TickySample -> Word64
+ Eventlog.Types: [tickyCtrAllocs] :: TickySample -> Word64
+ Eventlog.Types: [tickyCtrEntries] :: TickySample -> Word64
+ Eventlog.Types: [tickyCtrSampleId] :: TickySample -> Word64
+ Eventlog.Types: data ProfileType
+ Eventlog.Types: instance GHC.Show.Show Eventlog.Types.ProfileType
- Eventlog.Types: Header :: Text -> Text -> Maybe HeapProfBreakdown -> Text -> Text -> Text -> Int -> Maybe FilePath -> Header
+ Eventlog.Types: Header :: Text -> Text -> ProfileType -> Text -> Text -> Text -> Int -> Maybe FilePath -> Header
- Eventlog.Types: TickySample :: Word64 -> Double -> TickySample
+ Eventlog.Types: TickySample :: Word64 -> Word64 -> Word64 -> Word64 -> Double -> TickySample
- Eventlog.Types: [hHeapProfileType] :: Header -> Maybe HeapProfBreakdown
+ Eventlog.Types: [hHeapProfileType] :: Header -> ProfileType
- Eventlog.Types: data () => ClosureType
+ Eventlog.Types: data ClosureType
- Eventlog.Types: data () => HeapProfBreakdown
+ Eventlog.Types: data HeapProfBreakdown
Files
- CHANGELOG.md +6/−0
- eventlog2html.cabal +5/−5
- src/Eventlog/Data.hs +2/−2
- src/Eventlog/Events.hs +1/−1
- src/Eventlog/HeapProf.hs +1/−1
- src/Eventlog/HtmlTemplate.hs +12/−3
- src/Eventlog/Types.hs +3/−1
CHANGELOG.md view
@@ -1,3 +1,9 @@+0.12.0 release 2024-06-03+-------------------------++* Fix rendering of .hp profiles (#191)+* Add support for eras profiling+ 0.11.1 release 2024-08-17 -------------------------
eventlog2html.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 Name: eventlog2html-Version: 0.11.1+Version: 0.12.0 Synopsis: Visualise an eventlog Description: eventlog2html is a library for visualising eventlogs. At the moment, the intended use is to visualise eventlogs@@ -32,7 +32,7 @@ inline-docs/*.html extra-doc-files: README.md CHANGELOG.md-Tested-With: GHC ==9.0.2, GHC ==9.2.7, GHC ==9.4.7, GHC ==9.6.2, GHC ==9.8.1, GHC==9.10.1+Tested-With: GHC ==9.6.7, GHC ==9.8.4, GHC==9.10.2, GHC==9.12.2 Library Build-depends:@@ -46,10 +46,10 @@ containers >= 0.5.0 && < 0.8, file-embed >= 0.0.11 && < 0.1, filepath >= 1.4.2 && < 1.6,- ghc-events >= 0.19.0 && < 0.20,+ ghc-events >= 0.20.0 && < 0.21, ghc-heap >= 9 && < 10,- hashable >= 1.0 && < 1.5,- hashtables >= 1.2.3 && < 1.4,+ hashable >= 1.0 && < 1.6,+ hashtables >= 1.2.3 && < 1.5, hvega >= 0.11.0 && < 0.13, mtl >= 2.2.2 && < 2.4, optparse-applicative >= 0.14.3 && < 0.19,
src/Eventlog/Data.hs view
@@ -40,11 +40,11 @@ sortBy (flip (comparing (fst . snd))) $ Map.toList keeps -- Only supply the cost centre view in cost centre profiling mode. cc_descs = case hHeapProfileType h of- Just HeapProfBreakdownCostCentre -> Just (outputTree ccMap mdescs)+ (FromEventlog (Just HeapProfBreakdownCostCentre)) -> Just (outputTree ccMap mdescs) _ -> Nothing use_ipes = case hHeapProfileType h of- Just HeapProfBreakdownInfoTable -> Just ipes+ (FromEventlog (Just HeapProfBreakdownInfoTable)) -> Just ipes _ -> Nothing -- If we have IPE info, try to translate info table pointers to names
src/Eventlog/Events.hs view
@@ -344,7 +344,7 @@ let title = maybe "" T.unwords pargs date = formatDate clocktimeSec ppSamplingRate = T.pack . maybe "<Not available>" (show . fromNano) $ samplingRate- in \v -> Header title date heapProfileType ppSamplingRate "" "" v (T.unpack . head <$> pargs)+ in \v -> Header title date (FromEventlog heapProfileType) ppSamplingRate "" "" v (T.unpack . head <$> pargs) elBucketMap :: EL -> BucketMap
src/Eventlog/HeapProf.hs view
@@ -27,7 +27,7 @@ [job, date, smpU, valU] = zipWith header [sJOB, sDATE, sSAMPLE_UNIT, sVALUE_UNIT] hs fs = chunkSamples ss- in (\v -> Header job date Nothing (pack "") smpU valU v Nothing+ in (\v -> Header job date FromHPFile (pack "") smpU valU v Nothing , fs )
src/Eventlog/HtmlTemplate.hs view
@@ -19,7 +19,7 @@ import Eventlog.Data import Eventlog.Javascript import Eventlog.Args-import Eventlog.Types (Header(..), HeapProfBreakdown(..))+import Eventlog.Types (Header(..), HeapProfBreakdown(..), ProfileType(..)) import Eventlog.Rendering.Bootstrap import Eventlog.Rendering.Types import Eventlog.VegaTemplate@@ -162,11 +162,15 @@ perTabFooter header' = do H.div ! class_ "row" $ do H.div ! class_ "col" $ do- toHtml $ maybe "No heap profile" ppHeapProfileType (hHeapProfileType header')+ toHtml $ render_type (hHeapProfileType header') ", created at " code $ toHtml $ hDate header' " by " code $ toHtml $ hJob header'+ where+ render_type FromHPFile = "heap profile"+ render_type (FromEventlog Nothing) = "No heap profile"+ render_type (FromEventlog (Just t)) = ppHeapProfileType t select_data :: IncludeTraceData -> ChartType -> [Text]@@ -223,6 +227,7 @@ ppHeapProfileType (HeapProfBreakdownBiography) = "Biographical profiling (implied by -hb)" ppHeapProfileType (HeapProfBreakdownClosureType) = "Basic heap profile (implied by -hT)" ppHeapProfileType (HeapProfBreakdownInfoTable) = "Info table profile (implied by -hi)"+ppHeapProfileType (HeapProfBreakdownEra) = "Era profile (implied by -he)" allTabs :: EventlogType@@ -248,7 +253,11 @@ " seconds between heap samples" has_heap_profile :: Header -> Bool-has_heap_profile h = isJust (hHeapProfileType h)+has_heap_profile h =+ case (hHeapProfileType h) of+ FromHPFile -> True+ FromEventlog t -> isJust t+ allHeapTabs :: Header -> Args -> HeapProfileData -> [TabGroup] allHeapTabs header' as x =
src/Eventlog/Types.hs view
@@ -19,13 +19,15 @@ Header { hJob :: Text , hDate :: Text- , hHeapProfileType :: Maybe HeapProfBreakdown+ , hHeapProfileType :: ProfileType , hSamplingRate :: Text , hSampleUnit :: Text , hValueUnit :: Text , hCount :: Int , hProgPath :: Maybe FilePath } deriving Show++data ProfileType = FromHPFile | FromEventlog (Maybe HeapProfBreakdown) deriving Show -- The bucket is a key to uniquely identify a band