Files
Tristan Hume e35335fe3c Haskell GHC JSON format support (fixes #182) (#183)
Fixes #182 by adding support for importing the JSON profiling format created by GHC's built in profiling support when the executable is passed the `-pj` option. Produces a profile group containing both a time and allocation profile.

Unfortunately, GHC doesn't provide the raw sample information to get the time view to be useful, so only left heavy and sandwich are useful.

Includes a test profile, and I've also tested it on a more real large 2MB profile file in the UI and it works great.

I also modified the Readme to link to a wiki page I'm unable to create, but that should have something like this content copy-pasted into it:

# Importing from Haskell

GHC provides built in profiling support that can export a JSON file.
In order to do this you need to compile your executable with profiling
support and then pass the `-pj` RTS flag to the executable.

This will produce a `my-binary.prof` file in the current directory which
you can import into speedscope.

## Using GHC

See the [GHC manual page on profiling](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html)
for more extensive information on the command line flags available.

```
$ ghc -prof -fprof-auto -rtsopts Main.hs
$ ./Main +RTS -pj -RTS
```

## Using Stack

### With executables

```
$ stack build --profile
$ stack exec -- my-executable +RTS -pj -RTS
```

### With tests

```
stack test --profile --test-arguments "+RTS -pj -RTS"
```
2018-10-29 09:37:11 -07:00

194 lines
27 KiB
Plaintext

{
"program": "binary-trees",
"arguments": ["binary-trees"],
"rts_arguments": ["-pj"],
"end_time": "Thu Oct 25 10:51 2018",
"initial_capabilities": 0,
"total_time": 0.80,
"total_ticks": 798,
"tick_interval": 1000,
"total_alloc":1921672664,
"cost_centres": [
{"id": 150, "label": "IDLE", "module": "IDLE", "src_loc": "<built-in>", "is_caf": false}, {"id": 149, "label": "PINNED", "module": "SYSTEM", "src_loc": "<built-in>", "is_caf": false}, {"id": 148, "label": "DONT_CARE", "module": "MAIN", "src_loc": "<built-in>", "is_caf": false}, {"id": 147, "label": "OVERHEAD_of", "module": "PROFILING", "src_loc": "<built-in>", "is_caf": false}, {"id": 146, "label": "GC", "module": "GC", "src_loc": "<built-in>", "is_caf": false}, {"id": 145, "label": "SYSTEM", "module": "SYSTEM", "src_loc": "<built-in>", "is_caf": false}, {"id": 144, "label": "MAIN", "module": "MAIN", "src_loc": "<built-in>", "is_caf": false}, {"id": 143, "label": "CAF", "module": "GHC.Types", "src_loc": "<entire-module>", "is_caf": true}, {"id": 142, "label": "CAF", "module": "GHC.Tuple", "src_loc": "<entire-module>", "is_caf": true}, {"id": 141, "label": "CAF", "module": "GHC.Classes", "src_loc": "<entire-module>", "is_caf": true}, {"id": 140, "label": "CAF", "module": "GHC.CString", "src_loc": "<entire-module>", "is_caf": true}, {"id": 139, "label": "CAF", "module": "GHC.Integer.Type", "src_loc": "<entire-module>", "is_caf": true}, {"id": 138, "label": "CAF", "module": "GHC.Integer.Logarithms.Internals", "src_loc": "<entire-module>", "is_caf": true}, {"id": 137, "label": "CAF", "module": "GHC.Integer.Logarithms", "src_loc": "<entire-module>", "is_caf": true}, {"id": 136, "label": "CAF", "module": "GHC.Event.Unique", "src_loc": "<entire-module>", "is_caf": true}, {"id": 135, "label": "CAF", "module": "GHC.Event.TimerManager", "src_loc": "<entire-module>", "is_caf": true}, {"id": 134, "label": "CAF", "module": "GHC.Event.Thread", "src_loc": "<entire-module>", "is_caf": true}, {"id": 133, "label": "CAF", "module": "GHC.Event.Poll", "src_loc": "<entire-module>", "is_caf": true}, {"id": 132, "label": "CAF", "module": "GHC.Event.PSQ", "src_loc": "<entire-module>", "is_caf": true}, {"id": 131, "label": "CAF", "module": "GHC.Event.Manager", "src_loc": "<entire-module>", "is_caf": true}, {"id": 130, "label": "CAF", "module": "GHC.Event.KQueue", "src_loc": "<entire-module>", "is_caf": true}, {"id": 129, "label": "CAF", "module": "GHC.Event.Internal", "src_loc": "<entire-module>", "is_caf": true}, {"id": 128, "label": "CAF", "module": "GHC.Event.IntTable", "src_loc": "<entire-module>", "is_caf": true}, {"id": 127, "label": "CAF", "module": "GHC.Event.Control", "src_loc": "<entire-module>", "is_caf": true}, {"id": 126, "label": "CAF", "module": "GHC.Event.Array", "src_loc": "<entire-module>", "is_caf": true}, {"id": 125, "label": "CAF", "module": "GHC.Event.Arr", "src_loc": "<entire-module>", "is_caf": true}, {"id": 124, "label": "CAF", "module": "Data.Typeable.Internal", "src_loc": "<entire-module>", "is_caf": true}, {"id": 123, "label": "CAF", "module": "Data.Semigroup.Internal", "src_loc": "<entire-module>", "is_caf": true}, {"id": 122, "label": "CAF", "module": "Data.OldList", "src_loc": "<entire-module>", "is_caf": true}, {"id": 121, "label": "CAF", "module": "Text.Read.Lex", "src_loc": "<entire-module>", "is_caf": true}, {"id": 120, "label": "CAF", "module": "Text.Read", "src_loc": "<entire-module>", "is_caf": true}, {"id": 119, "label": "CAF", "module": "Text.Printf", "src_loc": "<entire-module>", "is_caf": true}, {"id": 118, "label": "CAF", "module": "Text.ParserCombinators.ReadPrec", "src_loc": "<entire-module>", "is_caf": true}, {"id": 117, "label": "CAF", "module": "Text.ParserCombinators.ReadP", "src_loc": "<entire-module>", "is_caf": true}, {"id": 116, "label": "CAF", "module": "System.Posix.Types", "src_loc": "<entire-module>", "is_caf": true}, {"id": 115, "label": "CAF", "module": "System.Posix.Internals", "src_loc": "<entire-module>", "is_caf": true}, {"id": 114, "label": "CAF", "module": "System.IO", "src_loc": "<entire-module>", "is_caf": true}, {"id": 113, "label": "CAF", "module": "Numeric", "src_loc": "<entire-module>", "is_caf": true}, {"id": 112, "label": "CAF", "module": "GHC.Word", "src_loc": "<entire-module>", "is_caf": true}, {"id": 111, "label": "CAF", "module": "GHC.Weak", "src_loc": "<entire-module>", "is_caf": true}, {"id": 110, "label": "CAF", "module": "GHC.Unicode", "src_loc": "<entire-module>", "is_caf": true}, {"id": 109, "label": "CAF", "module": "GHC.TypeNats", "src_loc": "<entire-module>", "is_caf": true}, {"id": 108, "label": "CAF", "module": "GHC.TypeLits", "src_loc": "<entire-module>", "is_caf": true}, {"id": 107, "label": "CAF", "module": "GHC.TopHandler", "src_loc": "<entire-module>", "is_caf": true}, {"id": 106, "label": "CAF", "module": "GHC.Storable", "src_loc": "<entire-module>", "is_caf": true}, {"id": 105, "label": "CAF", "module": "GHC.Stack.Types", "src_loc": "<entire-module>", "is_caf": true}, {"id": 104, "label": "CAF", "module": "GHC.Stack.CCS", "src_loc": "<entire-module>", "is_caf": true}, {"id": 103, "label": "CAF", "module": "GHC.Stable", "src_loc": "<entire-module>", "is_caf": true}, {"id": 102, "label": "CAF", "module": "GHC.Show", "src_loc": "<entire-module>", "is_caf": true}, {"id": 101, "label": "CAF", "module": "GHC.STRef", "src_loc": "<entire-module>", "is_caf": true}, {"id": 100, "label": "CAF", "module": "GHC.ST", "src_loc": "<entire-module>", "is_caf": true}, {"id": 99, "label": "CAF", "module": "GHC.Real", "src_loc": "<entire-module>", "is_caf": true}, {"id": 98, "label": "CAF", "module": "GHC.Read", "src_loc": "<entire-module>", "is_caf": true}, {"id": 97, "label": "CAF", "module": "GHC.Ptr", "src_loc": "<entire-module>", "is_caf": true}, {"id": 96, "label": "CAF", "module": "GHC.Pack", "src_loc": "<entire-module>", "is_caf": true}, {"id": 95, "label": "CAF", "module": "GHC.Num", "src_loc": "<entire-module>", "is_caf": true}, {"id": 94, "label": "CAF", "module": "GHC.Natural", "src_loc": "<entire-module>", "is_caf": true}, {"id": 93, "label": "CAF", "module": "GHC.MVar", "src_loc": "<entire-module>", "is_caf": true}, {"id": 92, "label": "CAF", "module": "GHC.List", "src_loc": "<entire-module>", "is_caf": true}, {"id": 91, "label": "CAF", "module": "GHC.Int", "src_loc": "<entire-module>", "is_caf": true}, {"id": 90, "label": "CAF", "module": "GHC.IORef", "src_loc": "<entire-module>", "is_caf": true}, {"id": 89, "label": "CAF", "module": "GHC.IO.Unsafe", "src_loc": "<entire-module>", "is_caf": true}, {"id": 88, "label": "CAF", "module": "GHC.IO.IOMode", "src_loc": "<entire-module>", "is_caf": true}, {"id": 87, "label": "CAF", "module": "GHC.IO.Handle.Types", "src_loc": "<entire-module>", "is_caf": true}, {"id": 86, "label": "CAF", "module": "GHC.IO.Handle.Text", "src_loc": "<entire-module>", "is_caf": true}, {"id": 85, "label": "CAF", "module": "GHC.IO.Handle.Internals", "src_loc": "<entire-module>", "is_caf": true}, {"id": 84, "label": "CAF", "module": "GHC.IO.Handle.FD", "src_loc": "<entire-module>", "is_caf": true}, {"id": 83, "label": "CAF", "module": "GHC.IO.Handle", "src_loc": "<entire-module>", "is_caf": true}, {"id": 82, "label": "CAF", "module": "GHC.IO.FD", "src_loc": "<entire-module>", "is_caf": true}, {"id": 81, "label": "CAF", "module": "GHC.IO.Exception", "src_loc": "<entire-module>", "is_caf": true}, {"id": 80, "label": "CAF", "module": "GHC.IO.Encoding.UTF8", "src_loc": "<entire-module>", "is_caf": true}, {"id": 79, "label": "CAF", "module": "GHC.IO.Encoding.UTF32", "src_loc": "<entire-module>", "is_caf": true}, {"id": 78, "label": "CAF", "module": "GHC.IO.Encoding.UTF16", "src_loc": "<entire-module>", "is_caf": true}, {"id": 77, "label": "CAF", "module": "GHC.IO.Encoding.Types", "src_loc": "<entire-module>", "is_caf": true}, {"id": 76, "label": "CAF", "module": "GHC.IO.Encoding.Latin1", "src_loc": "<entire-module>", "is_caf": true}, {"id": 75, "label": "CAF", "module": "GHC.IO.Encoding.Iconv", "src_loc": "<entire-module>", "is_caf": true}, {"id": 74, "label": "CAF", "module": "GHC.IO.Encoding.Failure", "src_loc": "<entire-module>", "is_caf": true}, {"id": 73, "label": "CAF", "module": "GHC.IO.Encoding", "src_loc": "<entire-module>", "is_caf": true}, {"id": 72, "label": "CAF", "module": "GHC.IO.Device", "src_loc": "<entire-module>", "is_caf": true}, {"id": 71, "label": "CAF", "module": "GHC.IO.BufferedIO", "src_loc": "<entire-module>", "is_caf": true}, {"id": 70, "label": "CAF", "module": "GHC.IO.Buffer", "src_loc": "<entire-module>", "is_caf": true}, {"id": 69, "label": "CAF", "module": "GHC.IO", "src_loc": "<entire-module>", "is_caf": true}, {"id": 68, "label": "CAF", "module": "GHC.Generics", "src_loc": "<entire-module>", "is_caf": true}, {"id": 67, "label": "CAF", "module": "GHC.ForeignPtr", "src_loc": "<entire-module>", "is_caf": true}, {"id": 66, "label": "CAF", "module": "GHC.Foreign", "src_loc": "<entire-module>", "is_caf": true}, {"id": 65, "label": "CAF", "module": "GHC.Float.RealFracMethods", "src_loc": "<entire-module>", "is_caf": true}, {"id": 64, "label": "CAF", "module": "GHC.Float.ConversionUtils", "src_loc": "<entire-module>", "is_caf": true}, {"id": 63, "label": "CAF", "module": "GHC.Float", "src_loc": "<entire-module>", "is_caf": true}, {"id": 62, "label": "CAF", "module": "GHC.Fingerprint.Type", "src_loc": "<entire-module>", "is_caf": true}, {"id": 61, "label": "CAF", "module": "GHC.Fingerprint", "src_loc": "<entire-module>", "is_caf": true}, {"id": 60, "label": "CAF", "module": "GHC.Exception", "src_loc": "<entire-module>", "is_caf": true}, {"id": 59, "label": "CAF", "module": "GHC.Err", "src_loc": "<entire-module>", "is_caf": true}, {"id": 58, "label": "CAF", "module": "GHC.Enum", "src_loc": "<entire-module>", "is_caf": true}, {"id": 57, "label": "CAF", "module": "GHC.Conc.Sync", "src_loc": "<entire-module>", "is_caf": true}, {"id": 56, "label": "CAF", "module": "GHC.Conc.Signal", "src_loc": "<entire-module>", "is_caf": true}, {"id": 55, "label": "CAF", "module": "GHC.Conc.IO", "src_loc": "<entire-module>", "is_caf": true}, {"id": 54, "label": "CAF", "module": "GHC.Char", "src_loc": "<entire-module>", "is_caf": true}, {"id": 53, "label": "CAF", "module": "GHC.Base", "src_loc": "<entire-module>", "is_caf": true}, {"id": 52, "label": "CAF", "module": "GHC.Arr", "src_loc": "<entire-module>", "is_caf": true}, {"id": 51, "label": "CAF", "module": "Foreign.Storable", "src_loc": "<entire-module>", "is_caf": true}, {"id": 50, "label": "CAF", "module": "Foreign.Marshal.Array", "src_loc": "<entire-module>", "is_caf": true}, {"id": 49, "label": "CAF", "module": "Foreign.Marshal.Alloc", "src_loc": "<entire-module>", "is_caf": true}, {"id": 48, "label": "CAF", "module": "Foreign.C.Types", "src_loc": "<entire-module>", "is_caf": true}, {"id": 47, "label": "CAF", "module": "Foreign.C.String", "src_loc": "<entire-module>", "is_caf": true}, {"id": 46, "label": "CAF", "module": "Foreign.C.Error", "src_loc": "<entire-module>", "is_caf": true}, {"id": 45, "label": "CAF", "module": "Data.Type.Equality", "src_loc": "<entire-module>", "is_caf": true}, {"id": 44, "label": "CAF", "module": "Data.Tuple", "src_loc": "<entire-module>", "is_caf": true}, {"id": 43, "label": "CAF", "module": "Data.Proxy", "src_loc": "<entire-module>", "is_caf": true}, {"id": 42, "label": "CAF", "module": "Data.Maybe", "src_loc": "<entire-module>", "is_caf": true}, {"id": 41, "label": "CAF", "module": "Data.Either", "src_loc": "<entire-module>", "is_caf": true}, {"id": 40, "label": "CAF", "module": "Data.Dynamic", "src_loc": "<entire-module>", "is_caf": true}, {"id": 39, "label": "CAF", "module": "Data.Bits", "src_loc": "<entire-module>", "is_caf": true}, {"id": 38, "label": "CAF", "module": "Control.Monad.Fail", "src_loc": "<entire-module>", "is_caf": true}, {"id": 37, "label": "CAF", "module": "Control.Exception.Base", "src_loc": "<entire-module>", "is_caf": true}, {"id": 36, "label": "CAF:minN", "module": "Main", "src_loc": "src/Main.hs:17:1-4", "is_caf": true}, {"id": 35, "label": "CAF:io1", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 34, "label": "CAF:main_n", "module": "Main", "src_loc": "src/Main.hs:22:9", "is_caf": true}, {"id": 33, "label": "CAF:main_maxN", "module": "Main", "src_loc": "src/Main.hs:23:9-12", "is_caf": true}, {"id": 32, "label": "CAF:main_stretchN", "module": "Main", "src_loc": "src/Main.hs:24:9-16", "is_caf": true}, {"id": 31, "label": "CAF:main7", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 30, "label": "CAF:main12", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 29, "label": "CAF:main11", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 28, "label": "CAF:eta_r6nG", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 27, "label": "CAF:lvl2_r6nH", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 26, "label": "CAF:eta1_r6nI", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 25, "label": "CAF:main9", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 24, "label": "CAF:lvl4_r6nL", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 23, "label": "CAF:main5", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 22, "label": "CAF:lvl8_r6nP", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 21, "label": "CAF:main1", "module": "Main", "src_loc": "<no location info>", "is_caf": true}, {"id": 20, "label": "CAF:main", "module": "Main", "src_loc": "src/Main.hs:21:1-4", "is_caf": true}, {"id": 19, "label": "main", "module": "Main", "src_loc": "src/Main.hs:(21,1)-(38,42)", "is_caf": false}, {"id": 18, "label": "main.\\", "module": "Main", "src_loc": "src/Main.hs:35:26-54", "is_caf": false}, {"id": 17, "label": "main.vs", "module": "Main", "src_loc": "src/Main.hs:34:9-28", "is_caf": false}, {"id": 16, "label": "main.long", "module": "Main", "src_loc": "src/Main.hs:31:9-29", "is_caf": false}, {"id": 15, "label": "main.c", "module": "Main", "src_loc": "src/Main.hs:27:9-35", "is_caf": false}, {"id": 14, "label": "main.stretchN", "module": "Main", "src_loc": "src/Main.hs:24:9-27", "is_caf": false}, {"id": 13, "label": "main.maxN", "module": "Main", "src_loc": "src/Main.hs:23:9-35", "is_caf": false}, {"id": 12, "label": "main.n", "module": "Main", "src_loc": "src/Main.hs:22:9-14", "is_caf": false}, {"id": 11, "label": "depth", "module": "Main", "src_loc": "src/Main.hs:(42,1)-(45,38)", "is_caf": false}, {"id": 10, "label": "depth.n", "module": "Main", "src_loc": "src/Main.hs:45:9-38", "is_caf": false}, {"id": 9, "label": "minN", "module": "Main", "src_loc": "src/Main.hs:17:1-8", "is_caf": false}, {"id": 8, "label": "io", "module": "Main", "src_loc": "src/Main.hs:19:1-56", "is_caf": false}, {"id": 7, "label": "sumT", "module": "Main", "src_loc": "src/Main.hs:(49,1)-(52,31)", "is_caf": false}, {"id": 6, "label": "sumT.a", "module": "Main", "src_loc": "src/Main.hs:51:9-31", "is_caf": false}, {"id": 5, "label": "sumT.b", "module": "Main", "src_loc": "src/Main.hs:52:9-31", "is_caf": false}, {"id": 4, "label": "check", "module": "Main", "src_loc": "src/Main.hs:(56,1)-(57,42)", "is_caf": false}, {"id": 3, "label": "make", "module": "Main", "src_loc": "src/Main.hs:(61,1)-(63,26)", "is_caf": false}, {"id": 2, "label": "make.i2", "module": "Main", "src_loc": "src/Main.hs:63:9-16", "is_caf": false}, {"id": 1, "label": "make.d2", "module": "Main", "src_loc": "src/Main.hs:63:19-26", "is_caf": false}]
,
"profile": {"id": 144, "entries": 0, "alloc": 648, "ticks": 0, "children": [{"id": 37, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 38, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 39, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 40, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 41, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 42, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 43, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 44, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 45, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 46, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 47, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 48, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 49, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 50, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 51, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 52, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 53, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 54, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 55, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 56, "entries": 0, "alloc": 640, "ticks": 0, "children": []}
,{"id": 57, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 58, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 59, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 60, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 61, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 62, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 63, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 64, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 65, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 66, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 67, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 68, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 69, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 70, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 71, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 72, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 73, "entries": 0, "alloc": 2768, "ticks": 0, "children": []}
,{"id": 74, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 75, "entries": 0, "alloc": 200, "ticks": 0, "children": []}
,{"id": 76, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 77, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 78, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 79, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 80, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 81, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 82, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 83, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 84, "entries": 0, "alloc": 34704, "ticks": 0, "children": []}
,{"id": 85, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 86, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 87, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 88, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 89, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 90, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 91, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 92, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 93, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 94, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 95, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 96, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 97, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 98, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 99, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 100, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 101, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 102, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 103, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 104, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 105, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 106, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 107, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 108, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 109, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 110, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 111, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 112, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 113, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 114, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 115, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 116, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 117, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 118, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 119, "entries": 0, "alloc": 528, "ticks": 0, "children": []}
,{"id": 120, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 121, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 122, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 123, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 124, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 125, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 126, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 127, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 128, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 129, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 130, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 131, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 132, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 133, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 134, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 135, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 136, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 137, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 138, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 139, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 140, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 141, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 142, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 143, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 26, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 32, "ticks": 0, "children": [{"id": 4, "entries": 131071, "alloc": 2097120, "ticks": 1, "children": []}
,{"id": 16, "entries": 1, "alloc": 0, "ticks": 0, "children": []}
]}
]}
,{"id": 28, "entries": 0, "alloc": 1096, "ticks": 0, "children": []}
,{"id": 35, "entries": 0, "alloc": 1888, "ticks": 0, "children": []}
,{"id": 27, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 16, "entries": 0, "alloc": 32, "ticks": 0, "children": [{"id": 3, "entries": 65535, "alloc": 7864080, "ticks": 3, "children": [{"id": 1, "entries": 32767, "alloc": 0, "ticks": 0, "children": []}
,{"id": 2, "entries": 32767, "alloc": 0, "ticks": 0, "children": []}
]}
]}
]}
]}
,{"id": 24, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 8, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
]}
]}
,{"id": 22, "entries": 0, "alloc": 520, "ticks": 0, "children": []}
,{"id": 20, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 21, "entries": 0, "alloc": 16, "ticks": 0, "children": [{"id": 19, "entries": 1, "alloc": 0, "ticks": 0, "children": []}
]}
,{"id": 29, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 15, "entries": 1, "alloc": 32, "ticks": 0, "children": [{"id": 4, "entries": 262143, "alloc": 4194272, "ticks": 4, "children": []}
]}
]}
]}
,{"id": 30, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 15, "entries": 0, "alloc": 32, "ticks": 0, "children": [{"id": 3, "entries": 131071, "alloc": 15728400, "ticks": 4, "children": [{"id": 1, "entries": 65535, "alloc": 0, "ticks": 0, "children": []}
,{"id": 2, "entries": 65535, "alloc": 0, "ticks": 0, "children": []}
]}
]}
]}
]}
,{"id": 23, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 8, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
]}
]}
,{"id": 31, "entries": 0, "alloc": 880, "ticks": 0, "children": []}
,{"id": 25, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 8, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
]}
]}
,{"id": 33, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 13, "entries": 1, "alloc": 32, "ticks": 0, "children": []}
]}
]}
,{"id": 34, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 12, "entries": 1, "alloc": 0, "ticks": 0, "children": []}
]}
]}
,{"id": 32, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 14, "entries": 1, "alloc": 32, "ticks": 0, "children": []}
]}
]}
,{"id": 36, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 9, "entries": 1, "alloc": 0, "ticks": 0, "children": []}
]}
,{"id": 148, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 146, "entries": 0, "alloc": 0, "ticks": 46, "children": []}
,{"id": 150, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 147, "entries": 0, "alloc": 2496, "ticks": 0, "children": []}
,{"id": 149, "entries": 0, "alloc": 0, "ticks": 0, "children": []}
,{"id": 145, "entries": 0, "alloc": 34736, "ticks": 19, "children": []}
,{"id": 19, "entries": 0, "alloc": 0, "ticks": 0, "children": [{"id": 18, "entries": 6, "alloc": 2224, "ticks": 0, "children": [{"id": 8, "entries": 6, "alloc": 44448, "ticks": 0, "children": []}
]}
,{"id": 8, "entries": 2, "alloc": 23464, "ticks": 0, "children": []}
,{"id": 17, "entries": 1, "alloc": 0, "ticks": 0, "children": [{"id": 11, "entries": 7, "alloc": 1120, "ticks": 0, "children": [{"id": 7, "entries": 43686, "alloc": 0, "ticks": 0, "children": [{"id": 6, "entries": 43680, "alloc": 1397760, "ticks": 3, "children": [{"id": 4, "entries": 12539232, "alloc": 199928832, "ticks": 153, "children": []}
,{"id": 3, "entries": 6247776, "alloc": 744491520, "ticks": 210, "children": [{"id": 1, "entries": 3102048, "alloc": 0, "ticks": 2, "children": []}
,{"id": 2, "entries": 3102048, "alloc": 0, "ticks": 1, "children": []}
]}
]}
,{"id": 5, "entries": 43680, "alloc": 1397760, "ticks": 1, "children": [{"id": 4, "entries": 12539232, "alloc": 199928832, "ticks": 162, "children": []}
,{"id": 3, "entries": 6247776, "alloc": 744491520, "ticks": 189, "children": [{"id": 1, "entries": 3102048, "alloc": 0, "ticks": 0, "children": []}
,{"id": 2, "entries": 3102048, "alloc": 0, "ticks": 0, "children": []}
]}
]}
]}
,{"id": 10, "entries": 7, "alloc": 0, "ticks": 0, "children": []}
]}
]}
]}
]}
}