diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
+0.9.2 release 2021-11-24
+
+* Improve profile load speed (#150)
+
 0.9.1 release 2021-06-21
 
-* Improve detailed mode for cost centre profiling (#195)
+* Improve detailed mode for cost centre profiling (#146)
 
 0.9 release 2021-03-17
 
diff --git a/eventlog2html.cabal b/eventlog2html.cabal
--- a/eventlog2html.cabal
+++ b/eventlog2html.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 Name:                eventlog2html
-Version:             0.9.1
+Version:             0.9.2
 Synopsis:            Visualise an eventlog
 Description:         eventlog2html is a library for visualising eventlogs.
                      At the moment, the intended use is to visualise eventlogs
@@ -43,11 +43,11 @@
     containers           >= 0.5.0 && < 0.7,
     file-embed           >= 0.0.11 && < 0.1,
     filepath             >= 1.4.2 && < 1.5,
-    ghc-events           >= 0.16.0 && < 0.17,
+    ghc-events           >= 0.16.0 && < 0.18,
     hashtables           >= 1.2.3 && < 1.3,
     hvega                >= 0.11.0 && < 0.12,
     mtl                  >= 2.2.2 && < 2.3,
-    optparse-applicative >= 0.14.3 && < 0.16,
+    optparse-applicative >= 0.14.3 && < 0.17,
     semigroups           >= 0.18 && < 0.20,
     text                 >= 1.2.3 && < 1.3,
     time                 >= 1.8.0 && < 2.0,
diff --git a/src/Eventlog/Bands.hs b/src/Eventlog/Bands.hs
--- a/src/Eventlog/Bands.hs
+++ b/src/Eventlog/Bands.hs
@@ -20,7 +20,7 @@
 bands :: Header -> Map Bucket Int -> [Frame] -> (UArray Int Double, UArray (Int, Int) Double)
 bands h bs frames = runST $ do
   times <- newArray (1, hCount h) 0
-  vals  <- newArray ((-1,1), (size bs, hCount h)) 0
+  vals  <- newArray ((-1,1), (Data.Map.size bs, hCount h)) 0
   forM_ (zip [1 ..] frames) $ \(i, (Frame t ss)) -> do
     writeArray times i t
     forM_ ss $ \(Sample k v) -> do
diff --git a/src/Eventlog/Detailed.hs b/src/Eventlog/Detailed.hs
--- a/src/Eventlog/Detailed.hs
+++ b/src/Eventlog/Detailed.hs
@@ -42,7 +42,7 @@
              Just ipes -> mkClosureInfo raw_bs ipes
              Nothing   -> Map.map (\v -> (None, v)) raw_bs
 
-  H.table ! A.id "closure_table" ! A.class_ "table table-striped closureTable" $ do
+  H.table ! A.id "closure_table" ! A.class_ "table table-striped closureTable" ! A.hidden "true" $ do
     H.thead $ H.tr $ do
       H.th "Profile"
       numTh "n"
@@ -58,7 +58,7 @@
       numTh "Intercept"
       numTh "Slope"
       numTh "Fit (R²)"
-    Map.foldrWithKey (\k a res -> renderEntry k a >> res) (mempty :: Html) cs
+    Map.foldr (\a res -> renderEntry a >> res) (mempty :: Html) cs
   H.script $ preEscapedToHtml initTable
   where
     numTh lbl = H.th ! H.dataAttribute "sortas" "numeric" $ lbl
@@ -89,7 +89,7 @@
       H.td ""
       H.td ""
 
-    renderEntry (Bucket k) (mitl, (n, BucketInfo shortDesc _ tot std mg)) = do
+    renderEntry (mitl, (n, BucketInfo shortDesc _ tot std mg)) = do
           let (a, b, r2) =
                 case mg of
                   Nothing -> ("", "", "")
@@ -126,7 +126,8 @@
         \});\
         \$.fn.sparkline.defaults.common.chartRangeMin = 0;\
         \$.fn.sparkline.defaults.common.width = 200;\
-        \$('.linechart').sparkline()\
+        \$('.linechart').sparkline();\
+        \$(\".closureTable\").removeAttr(\"hidden\")\
 \});"
 
 getBandValues :: Int
