@kylincloud/flamegraph 0.35.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/CHANGELOG.md +1211 -0
  2. package/LICENSE +202 -0
  3. package/README.md +251 -0
  4. package/dist/FlameGraph/FlameGraphComponent/CheckIcon.d.ts +2 -0
  5. package/dist/FlameGraph/FlameGraphComponent/CheckIcon.d.ts.map +1 -0
  6. package/dist/FlameGraph/FlameGraphComponent/ContextMenu.d.ts +17 -0
  7. package/dist/FlameGraph/FlameGraphComponent/ContextMenu.d.ts.map +1 -0
  8. package/dist/FlameGraph/FlameGraphComponent/ContextMenuHighlight.d.ts +14 -0
  9. package/dist/FlameGraph/FlameGraphComponent/ContextMenuHighlight.d.ts.map +1 -0
  10. package/dist/FlameGraph/FlameGraphComponent/DiffLegend.d.ts +9 -0
  11. package/dist/FlameGraph/FlameGraphComponent/DiffLegend.d.ts.map +1 -0
  12. package/dist/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.d.ts +8 -0
  13. package/dist/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.d.ts.map +1 -0
  14. package/dist/FlameGraph/FlameGraphComponent/Flamegraph.d.ts +96 -0
  15. package/dist/FlameGraph/FlameGraphComponent/Flamegraph.d.ts.map +1 -0
  16. package/dist/FlameGraph/FlameGraphComponent/Flamegraph_render.d.ts +27 -0
  17. package/dist/FlameGraph/FlameGraphComponent/Flamegraph_render.d.ts.map +1 -0
  18. package/dist/FlameGraph/FlameGraphComponent/GraphVizPane.d.ts +7 -0
  19. package/dist/FlameGraph/FlameGraphComponent/GraphVizPane.d.ts.map +1 -0
  20. package/dist/FlameGraph/FlameGraphComponent/Header.d.ts +12 -0
  21. package/dist/FlameGraph/FlameGraphComponent/Header.d.ts.map +1 -0
  22. package/dist/FlameGraph/FlameGraphComponent/Highlight.d.ts +18 -0
  23. package/dist/FlameGraph/FlameGraphComponent/Highlight.d.ts.map +1 -0
  24. package/dist/FlameGraph/FlameGraphComponent/LogoLink.d.ts +2 -0
  25. package/dist/FlameGraph/FlameGraphComponent/LogoLink.d.ts.map +1 -0
  26. package/dist/FlameGraph/FlameGraphComponent/color.d.ts +20 -0
  27. package/dist/FlameGraph/FlameGraphComponent/color.d.ts.map +1 -0
  28. package/dist/FlameGraph/FlameGraphComponent/colorPalette.d.ts +11 -0
  29. package/dist/FlameGraph/FlameGraphComponent/colorPalette.d.ts.map +1 -0
  30. package/dist/FlameGraph/FlameGraphComponent/constants.d.ts +6 -0
  31. package/dist/FlameGraph/FlameGraphComponent/constants.d.ts.map +1 -0
  32. package/dist/FlameGraph/FlameGraphComponent/index.d.ts +37 -0
  33. package/dist/FlameGraph/FlameGraphComponent/index.d.ts.map +1 -0
  34. package/dist/FlameGraph/FlameGraphComponent/murmur3.d.ts +2 -0
  35. package/dist/FlameGraph/FlameGraphComponent/murmur3.d.ts.map +1 -0
  36. package/dist/FlameGraph/FlameGraphComponent/testData.d.ts +53 -0
  37. package/dist/FlameGraph/FlameGraphComponent/testData.d.ts.map +1 -0
  38. package/dist/FlameGraph/FlameGraphComponent/utils.d.ts +6 -0
  39. package/dist/FlameGraph/FlameGraphComponent/utils.d.ts.map +1 -0
  40. package/dist/FlameGraph/FlameGraphComponent/viewTypes.d.ts +2 -0
  41. package/dist/FlameGraph/FlameGraphComponent/viewTypes.d.ts.map +1 -0
  42. package/dist/FlameGraph/FlameGraphRenderer.d.ts +86 -0
  43. package/dist/FlameGraph/FlameGraphRenderer.d.ts.map +1 -0
  44. package/dist/FlameGraph/decode.d.ts +27 -0
  45. package/dist/FlameGraph/decode.d.ts.map +1 -0
  46. package/dist/FlameGraph/normalize.d.ts +6 -0
  47. package/dist/FlameGraph/normalize.d.ts.map +1 -0
  48. package/dist/FlameGraph/uniqueness.d.ts +3 -0
  49. package/dist/FlameGraph/uniqueness.d.ts.map +1 -0
  50. package/dist/FlamegraphRenderer.d.ts +19 -0
  51. package/dist/FlamegraphRenderer.d.ts.map +1 -0
  52. package/dist/Icons.d.ts +9 -0
  53. package/dist/Icons.d.ts.map +1 -0
  54. package/dist/ProfilerTable.d.ts +21 -0
  55. package/dist/ProfilerTable.d.ts.map +1 -0
  56. package/dist/SharedQueryInput.d.ts +10 -0
  57. package/dist/SharedQueryInput.d.ts.map +1 -0
  58. package/dist/Toolbar.d.ts +31 -0
  59. package/dist/Toolbar.d.ts.map +1 -0
  60. package/dist/Tooltip/FlamegraphTooltip.d.ts +59 -0
  61. package/dist/Tooltip/FlamegraphTooltip.d.ts.map +1 -0
  62. package/dist/Tooltip/LeftClickIcon.d.ts +2 -0
  63. package/dist/Tooltip/LeftClickIcon.d.ts.map +1 -0
  64. package/dist/Tooltip/RightClickIcon.d.ts +2 -0
  65. package/dist/Tooltip/RightClickIcon.d.ts.map +1 -0
  66. package/dist/Tooltip/TableTooltip.d.ts +12 -0
  67. package/dist/Tooltip/TableTooltip.d.ts.map +1 -0
  68. package/dist/Tooltip/Tooltip.d.ts +29 -0
  69. package/dist/Tooltip/Tooltip.d.ts.map +1 -0
  70. package/dist/convert/convertJaegerTraceToProfile.d.ts +3 -0
  71. package/dist/convert/convertJaegerTraceToProfile.d.ts.map +1 -0
  72. package/dist/convert/diffTwoProfiles.d.ts +3 -0
  73. package/dist/convert/diffTwoProfiles.d.ts.map +1 -0
  74. package/dist/convert/flamebearersToTree.d.ts +11 -0
  75. package/dist/convert/flamebearersToTree.d.ts.map +1 -0
  76. package/dist/convert/sandwichViewProfiles.d.ts +14 -0
  77. package/dist/convert/sandwichViewProfiles.d.ts.map +1 -0
  78. package/dist/convert/subtract.d.ts +3 -0
  79. package/dist/convert/subtract.d.ts.map +1 -0
  80. package/dist/convert/testData.d.ts +50 -0
  81. package/dist/convert/testData.d.ts.map +1 -0
  82. package/dist/convert/toGraphviz.d.ts +3 -0
  83. package/dist/convert/toGraphviz.d.ts.map +1 -0
  84. package/dist/fitMode/fitMode.d.ts +42 -0
  85. package/dist/fitMode/fitMode.d.ts.map +1 -0
  86. package/dist/format/format.d.ts +42 -0
  87. package/dist/format/format.d.ts.map +1 -0
  88. package/dist/i18n.d.ts +55 -0
  89. package/dist/i18n.d.ts.map +1 -0
  90. package/dist/index.cjs.css +792 -0
  91. package/dist/index.cjs.js +5087 -0
  92. package/dist/index.d.ts +4 -0
  93. package/dist/index.d.ts.map +1 -0
  94. package/dist/index.esm.css +792 -0
  95. package/dist/index.esm.js +5079 -0
  96. package/dist/index.node.d.ts +9 -0
  97. package/dist/index.node.d.ts.map +1 -0
  98. package/dist/logo-v3-small-T5VXIMRR.svg +32 -0
  99. package/dist/models/decode.d.ts +3 -0
  100. package/dist/models/decode.d.ts.map +1 -0
  101. package/dist/models/flamebearer.d.ts +63 -0
  102. package/dist/models/flamebearer.d.ts.map +1 -0
  103. package/dist/models/groups.d.ts +37 -0
  104. package/dist/models/groups.d.ts.map +1 -0
  105. package/dist/models/index.d.ts +8 -0
  106. package/dist/models/index.d.ts.map +1 -0
  107. package/dist/models/profile.d.ts +152 -0
  108. package/dist/models/profile.d.ts.map +1 -0
  109. package/dist/models/spyName.d.ts +8 -0
  110. package/dist/models/spyName.d.ts.map +1 -0
  111. package/dist/models/trace.d.ts +357 -0
  112. package/dist/models/trace.d.ts.map +1 -0
  113. package/dist/models/units.d.ts +6 -0
  114. package/dist/models/units.d.ts.map +1 -0
  115. package/dist/search.d.ts +2 -0
  116. package/dist/search.d.ts.map +1 -0
  117. package/dist/shims/Box.d.ts +38 -0
  118. package/dist/shims/Box.d.ts.map +1 -0
  119. package/dist/shims/Button.d.ts +26 -0
  120. package/dist/shims/Button.d.ts.map +1 -0
  121. package/dist/shims/Dropdown.d.ts +30 -0
  122. package/dist/shims/Dropdown.d.ts.map +1 -0
  123. package/dist/shims/Input.d.ts +19 -0
  124. package/dist/shims/Input.d.ts.map +1 -0
  125. package/dist/shims/LoadingSpinner.d.ts +7 -0
  126. package/dist/shims/LoadingSpinner.d.ts.map +1 -0
  127. package/dist/shims/Menu.d.ts +4 -0
  128. package/dist/shims/Menu.d.ts.map +1 -0
  129. package/dist/shims/NoData.d.ts +2 -0
  130. package/dist/shims/NoData.d.ts.map +1 -0
  131. package/dist/shims/Table.d.ts +52 -0
  132. package/dist/shims/Table.d.ts.map +1 -0
  133. package/dist/shims/Tooltip.d.ts +9 -0
  134. package/dist/shims/Tooltip.d.ts.map +1 -0
  135. package/package.json +84 -0
  136. package/src/FlameGraph/FlameGraphComponent/CheckIcon.tsx +27 -0
  137. package/src/FlameGraph/FlameGraphComponent/ContextMenu.module.scss +10 -0
  138. package/src/FlameGraph/FlameGraphComponent/ContextMenu.spec.tsx +84 -0
  139. package/src/FlameGraph/FlameGraphComponent/ContextMenu.tsx +86 -0
  140. package/src/FlameGraph/FlameGraphComponent/ContextMenuHighlight.module.css +8 -0
  141. package/src/FlameGraph/FlameGraphComponent/ContextMenuHighlight.tsx +47 -0
  142. package/src/FlameGraph/FlameGraphComponent/DiffLegend.module.css +21 -0
  143. package/src/FlameGraph/FlameGraphComponent/DiffLegend.tsx +52 -0
  144. package/src/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.module.css +40 -0
  145. package/src/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.tsx +129 -0
  146. package/src/FlameGraph/FlameGraphComponent/Flamegraph.spec.ts +552 -0
  147. package/src/FlameGraph/FlameGraphComponent/Flamegraph.ts +446 -0
  148. package/src/FlameGraph/FlameGraphComponent/Flamegraph_render.spec.tsx +233 -0
  149. package/src/FlameGraph/FlameGraphComponent/Flamegraph_render.ts +478 -0
  150. package/src/FlameGraph/FlameGraphComponent/GraphVizPane.tsx +56 -0
  151. package/src/FlameGraph/FlameGraphComponent/GraphVizPanel.module.scss +55 -0
  152. package/src/FlameGraph/FlameGraphComponent/Header.module.css +27 -0
  153. package/src/FlameGraph/FlameGraphComponent/Header.tsx +71 -0
  154. package/src/FlameGraph/FlameGraphComponent/Highlight.module.css +7 -0
  155. package/src/FlameGraph/FlameGraphComponent/Highlight.spec.tsx +53 -0
  156. package/src/FlameGraph/FlameGraphComponent/Highlight.tsx +94 -0
  157. package/src/FlameGraph/FlameGraphComponent/LogoLink.module.scss +10 -0
  158. package/src/FlameGraph/FlameGraphComponent/LogoLink.tsx +101 -0
  159. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/canvas-renderer-spec-tsx-canvas-renderer-group-snapshot-collapses-small-blocks-into-one-1-snap.png +0 -0
  160. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/canvas-renderer-spec-tsx-canvas-renderer-group-snapshot-works-with-diff-mode-1-snap.png +0 -0
  161. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/canvas-renderer-spec-tsx-canvas-renderer-group-snapshot-works-with-highlighted-flamegraph-1-snap.png +0 -0
  162. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/canvas-renderer-spec-tsx-canvas-renderer-group-snapshot-works-with-normal-flamegraph-1-snap.png +0 -0
  163. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/canvas-renderer-spec-tsx-canvas-renderer-group-snapshot-works-with-selected-node-1-snap.png +0 -0
  164. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-focused-also-zooms-1-snap.png +0 -0
  165. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-focused-renders-a-focused-node-in-the-beginning-1-snap.png +0 -0
  166. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-focused-renders-a-focused-node-when-node-is-not-in-the-beginning-1-snap.png +0 -0
  167. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-focused-renders-a-focused-node-zoom-top-level-1-snap.png +0 -0
  168. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-complex-flamegraph-1-snap.png +0 -0
  169. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-double-diff-flamegraph-1-snap.png +0 -0
  170. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-highlighted-double-flamegraph-1-snap.png +0 -0
  171. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-highlighted-flamegraph-1-snap.png +0 -0
  172. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-simple-flamegraph-1-snap.png +0 -0
  173. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-simple-tree-1-snap.png +0 -0
  174. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-zoomed-flamegraph-1-snap.png +0 -0
  175. package/src/FlameGraph/FlameGraphComponent/__image_snapshots__/flamegraph-render-spec-tsx-render-group-snapshot-renders-a-zoomed-with-fit-mode-tail-1-snap.png +0 -0
  176. package/src/FlameGraph/FlameGraphComponent/canvas.module.css +6 -0
  177. package/src/FlameGraph/FlameGraphComponent/color.spec.ts +308 -0
  178. package/src/FlameGraph/FlameGraphComponent/color.ts +167 -0
  179. package/src/FlameGraph/FlameGraphComponent/colorPalette.ts +58 -0
  180. package/src/FlameGraph/FlameGraphComponent/constants.ts +5 -0
  181. package/src/FlameGraph/FlameGraphComponent/index.spec.tsx +291 -0
  182. package/src/FlameGraph/FlameGraphComponent/index.tsx +411 -0
  183. package/src/FlameGraph/FlameGraphComponent/murmur3.ts +97 -0
  184. package/src/FlameGraph/FlameGraphComponent/styles.module.scss +10 -0
  185. package/src/FlameGraph/FlameGraphComponent/testData.ts +427 -0
  186. package/src/FlameGraph/FlameGraphComponent/utils.ts +31 -0
  187. package/src/FlameGraph/FlameGraphComponent/viewTypes.ts +6 -0
  188. package/src/FlameGraph/FlameGraphRenderer.tsx +603 -0
  189. package/src/FlameGraph/FlamegraphRenderer.module.scss +93 -0
  190. package/src/FlameGraph/decode.ts +78 -0
  191. package/src/FlameGraph/normalize.spec.ts +76 -0
  192. package/src/FlameGraph/normalize.ts +60 -0
  193. package/src/FlameGraph/testData.json +423 -0
  194. package/src/FlameGraph/uniqueness.spec.ts +16 -0
  195. package/src/FlameGraph/uniqueness.ts +84 -0
  196. package/src/FlamegraphRenderer.tsx +61 -0
  197. package/src/Icons.tsx +74 -0
  198. package/src/ProfilerTable.tsx +527 -0
  199. package/src/SharedQueryInput.module.scss +82 -0
  200. package/src/SharedQueryInput.tsx +127 -0
  201. package/src/Toolbar.module.scss +117 -0
  202. package/src/Toolbar.spec.tsx +217 -0
  203. package/src/Toolbar.tsx +471 -0
  204. package/src/Tooltip/FlamegraphTooltip.spec.tsx +81 -0
  205. package/src/Tooltip/FlamegraphTooltip.tsx +257 -0
  206. package/src/Tooltip/LeftClickIcon.tsx +18 -0
  207. package/src/Tooltip/RightClickIcon.tsx +18 -0
  208. package/src/Tooltip/TableTooltip.spec.tsx +44 -0
  209. package/src/Tooltip/TableTooltip.tsx +145 -0
  210. package/src/Tooltip/Tooltip.module.scss +71 -0
  211. package/src/Tooltip/Tooltip.spec.tsx +395 -0
  212. package/src/Tooltip/Tooltip.tsx +336 -0
  213. package/src/__snapshots__/Toolbar.spec.tsx.snap +297 -0
  214. package/src/convert/convertJaegerTraceToProfile.ts +97 -0
  215. package/src/convert/diffTwoProfiles.ts +81 -0
  216. package/src/convert/flamebearersToTree.ts +78 -0
  217. package/src/convert/sandwichViewProfiles.spec.ts +65 -0
  218. package/src/convert/sandwichViewProfiles.ts +191 -0
  219. package/src/convert/subtract.ts +87 -0
  220. package/src/convert/testData.ts +145 -0
  221. package/src/convert/toGraphviz.ts +485 -0
  222. package/src/fitMode/fitMode.spec.ts +93 -0
  223. package/src/fitMode/fitMode.ts +122 -0
  224. package/src/format/format.spec.ts +291 -0
  225. package/src/format/format.ts +303 -0
  226. package/src/globals.d.ts +13 -0
  227. package/src/i18n.tsx +293 -0
  228. package/src/index.node.ts +19 -0
  229. package/src/index.spec.tsx +383 -0
  230. package/src/index.tsx +10 -0
  231. package/src/logo-v3-small.svg +32 -0
  232. package/src/models/decode.ts +45 -0
  233. package/src/models/flamebearer.ts +86 -0
  234. package/src/models/groups.ts +14 -0
  235. package/src/models/index.ts +7 -0
  236. package/src/models/profile.spec.ts +32 -0
  237. package/src/models/profile.ts +48 -0
  238. package/src/models/spyName.spec.ts +18 -0
  239. package/src/models/spyName.ts +32 -0
  240. package/src/models/trace.ts +45 -0
  241. package/src/models/units.spec.ts +21 -0
  242. package/src/models/units.ts +24 -0
  243. package/src/sass/_common.scss +206 -0
  244. package/src/sass/_css-variables.scss +201 -0
  245. package/src/sass/_mixins.scss +15 -0
  246. package/src/sass/_sanitize.scss +407 -0
  247. package/src/sass/_variables.scss +53 -0
  248. package/src/sass/flamegraph.scss +18 -0
  249. package/src/search.spec.ts +11 -0
  250. package/src/search.ts +4 -0
  251. package/src/shameful-any.d.ts +2 -0
  252. package/src/shims/Box.module.scss +57 -0
  253. package/src/shims/Box.tsx +105 -0
  254. package/src/shims/Button.module.scss +129 -0
  255. package/src/shims/Button.tsx +128 -0
  256. package/src/shims/Dropdown.module.scss +63 -0
  257. package/src/shims/Dropdown.tsx +96 -0
  258. package/src/shims/Input.module.scss +15 -0
  259. package/src/shims/Input.tsx +55 -0
  260. package/src/shims/LoadingSpinner.tsx +19 -0
  261. package/src/shims/Menu.tsx +9 -0
  262. package/src/shims/NoData.module.scss +6 -0
  263. package/src/shims/NoData.tsx +11 -0
  264. package/src/shims/Table.module.scss +82 -0
  265. package/src/shims/Table.spec.tsx +121 -0
  266. package/src/shims/Table.tsx +252 -0
  267. package/src/shims/Tooltip.tsx +51 -0
@@ -0,0 +1,427 @@
1
+ const TestData = {
2
+ empty: {
3
+ names: [],
4
+ levels: [],
5
+ numTicks: 0,
6
+ sampleRate: 0,
7
+ units: 'samples' as const,
8
+ spyName: 'unknown' as const,
9
+ format: 'single' as const,
10
+ version: 0,
11
+ },
12
+ SimpleTree: {
13
+ topLevel: 0,
14
+ rangeMin: 0,
15
+ format: 'single' as const,
16
+ numTicks: 988,
17
+ maxSelf: 988,
18
+ sampleRate: 100,
19
+ names: [
20
+ 'total',
21
+ 'runtime.main',
22
+ 'main.slowFunction',
23
+ 'main.work',
24
+ 'main.main',
25
+ 'main.fastFunction',
26
+ ],
27
+ levels: [
28
+ [0, 988, 0, 0],
29
+ [0, 988, 0, 1],
30
+ [0, 214, 0, 5, 214, 3, 2, 4, 217, 771, 0, 2],
31
+ [0, 214, 214, 3, 216, 1, 1, 5, 217, 771, 771, 3],
32
+ ],
33
+
34
+ rangeMax: 1,
35
+ units: 'samples' as const,
36
+ fitMode: 'HEAD',
37
+
38
+ spyName: 'gospy' as const,
39
+ version: 1,
40
+ },
41
+ ComplexTree: {
42
+ names: [
43
+ 'total',
44
+ 'runtime.mcall',
45
+ 'runtime.park_m',
46
+ 'runtime.schedule',
47
+ 'runtime.unlockWithRank',
48
+ 'runtime.unlock2',
49
+ 'runtime.resetspinning',
50
+ 'runtime.wakep',
51
+ 'runtime.startm',
52
+ 'runtime.notewakeup',
53
+ 'runtime.futexwakeup',
54
+ 'runtime.futex',
55
+ 'runtime.pMask.read',
56
+ 'runtime.findrunnable',
57
+ 'runtime.stopm',
58
+ 'runtime.mPark',
59
+ 'runtime.notesleep',
60
+ 'runtime.futexsleep',
61
+ 'runtime.runqget',
62
+ 'runtime.pidleput',
63
+ 'runtime.updateTimerPMask',
64
+ 'runtime.netpoll',
65
+ 'runtime.read',
66
+ 'runtime.epollwait',
67
+ 'runtime.checkTimers',
68
+ 'runtime.runtimer',
69
+ 'runtime.runOneTimer',
70
+ 'time.sendTime',
71
+ 'runtime.selectnbsend',
72
+ 'runtime.chansend',
73
+ 'runtime.send',
74
+ 'runtime.goready',
75
+ 'runtime.goready.func1',
76
+ 'runtime.ready',
77
+ 'runtime.siftdownTimer',
78
+ 'runtime.bgscavenge.func1',
79
+ 'runtime.wakeScavenger',
80
+ 'runtime.injectglist.func1',
81
+ 'runtime.gcBgMarkWorker',
82
+ 'runtime.systemstack',
83
+ 'runtime.gcBgMarkWorker.func2',
84
+ 'runtime.gcDrain',
85
+ 'runtime.scanobject',
86
+ 'runtime.spanOf',
87
+ 'runtime.pageIndexOf',
88
+ 'runtime.markBits.isMarked',
89
+ 'runtime.greyobject',
90
+ 'runtime.findObject',
91
+ 'runtime.heapBitsForAddr',
92
+ 'runtime.heapBits.bits',
93
+ 'runtime.(*gcWork).tryGet',
94
+ 'runtime.putempty',
95
+ 'runtime.(*lfstack).push',
96
+ 'runtime.(*lfstack).pop',
97
+ 'runtime.(*gcWork).balance',
98
+ 'runtime.handoff',
99
+ 'runtime.memmove',
100
+ 'runtime.(*gcWork).tryGetFast',
101
+ 'runtime.bgsweep',
102
+ 'runtime.sweepone',
103
+ 'runtime.(*mspan).sweep',
104
+ 'runtime.(*mheap).freeSpan',
105
+ 'runtime.(*mheap).freeSpan.func1',
106
+ 'runtime.(*mheap).freeSpanLocked',
107
+ 'runtime.(*pageAlloc).free',
108
+ 'runtime.bgscavenge',
109
+ 'runtime.bgscavenge.func2',
110
+ 'runtime.(*pageAlloc).scavenge',
111
+ 'runtime.(*pageAlloc).scavengeOne',
112
+ 'runtime.(*pageAlloc).scavengeRangeLocked',
113
+ 'runtime.sysUnused',
114
+ 'runtime.madvise',
115
+ 'runtime.resettimer',
116
+ 'runtime.modtimer',
117
+ 'runtime.wakeNetPoller',
118
+ 'runtime.write',
119
+ 'runtime.write1',
120
+ 'runtime._System',
121
+ 'runtime.gogo',
122
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/cache.New.func2',
123
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/cache.(*Cache).saveToDisk',
124
+ 'github.com/pyroscope-io/pyroscope/pkg/storage.treeCodec.Serialize',
125
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/tree.(*Tree).SerializeTruncate',
126
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/tree.(*Tree).minValue',
127
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/tree.(*Tree).iterateWithTotal',
128
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/tree.(*Tree).minValue.func1',
129
+ 'github.com/pyroscope-io/pyroscope/pkg/structs/cappedarr.(*CappedArray).Push',
130
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/dict.(*Dict).Put',
131
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/dict.(*trieNode).findNodeAt',
132
+ 'github.com/pyroscope-io/pyroscope/pkg/util/varint.Writer.Write',
133
+ 'bytes.(*Buffer).tryGrowByReslice',
134
+ 'bytes.(*Buffer).Write',
135
+ 'bytes.(*Buffer).grow',
136
+ 'runtime.makeslice',
137
+ 'github.com/pyroscope-io/pyroscope/pkg/storage.segmentCodec.Serialize',
138
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/segment.(*Segment).Serialize',
139
+ 'runtime.typedslicecopy',
140
+ 'runtime.growslice',
141
+ 'runtime.mallocgc',
142
+ 'runtime.heapBitsSetType',
143
+ 'runtime.(*mcache).nextFree',
144
+ 'runtime.(*mcache).refill',
145
+ 'runtime.(*mcentral).uncacheSpan',
146
+ 'runtime.(*spanSet).push',
147
+ 'runtime.(*headTailIndex).incTail',
148
+ 'runtime.(*mcentral).cacheSpan',
149
+ 'runtime.(*mcentral).grow',
150
+ 'runtime.(*mheap).alloc',
151
+ 'runtime.memclrNoHeapPointers',
152
+ 'runtime.getMCache',
153
+ 'github.com/valyala/bytebufferpool.(*ByteBuffer).Write',
154
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/upstream/direct.(*Direct).uploadLoop',
155
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/upstream/direct.(*Direct).safeUpload',
156
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/upstream/direct.(*Direct).uploadProfile',
157
+ 'github.com/pyroscope-io/pyroscope/pkg/structs/transporttrie.(*Trie).Iterate',
158
+ 'github.com/pyroscope-io/pyroscope/pkg/storage.IngestionObserver.Put',
159
+ 'github.com/pyroscope-io/pyroscope/pkg/storage.(*Storage).Put',
160
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/segment.(*Segment).Put',
161
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/segment.(*streeNode).put',
162
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/segment.(*Segment).Put.func1',
163
+ 'github.com/pyroscope-io/pyroscope/pkg/storage.(*Storage).Put.func1',
164
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/tree.(*Tree).Merge',
165
+ 'github.com/pyroscope-io/pyroscope/pkg/storage/tree.(*treeNode).insert',
166
+ 'sort.Search',
167
+ 'bytes.Compare',
168
+ 'cmpbody',
169
+ 'github.com/pyroscope-io/pyroscope/pkg/agent.(*ProfileSession).takeSnapshots',
170
+ 'runtime.selectgo',
171
+ 'runtime.sellock',
172
+ 'runtime.lockWithRank',
173
+ 'runtime.lock2',
174
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/gospy.(*GoSpy).Snapshot',
175
+ 'runtime/pprof.writeHeap',
176
+ 'runtime/pprof.writeHeapInternal',
177
+ 'runtime/pprof.writeHeapProto',
178
+ 'runtime/pprof.newProfileBuilder',
179
+ 'runtime/pprof.(*profileBuilder).readMapping',
180
+ 'runtime/pprof.parseProcSelfMaps',
181
+ 'runtime/pprof.elfBuildID',
182
+ 'os.(*File).pread',
183
+ 'internal/poll.(*FD).Pread',
184
+ 'syscall.Pread',
185
+ 'syscall.Syscall6',
186
+ 'runtime/pprof.(*profileBuilder).pbSample',
187
+ 'runtime/pprof.(*protobuf).endMessage',
188
+ 'runtime/pprof.(*profileBuilder).flush',
189
+ 'compress/flate.(*Writer).Write',
190
+ 'compress/flate.(*compressor).write',
191
+ 'compress/flate.(*compressor).encSpeed',
192
+ 'compress/flate.(*huffmanBitWriter).writeBlockDynamic',
193
+ 'compress/flate.(*huffmanBitWriter).writeTokens',
194
+ 'compress/flate.(*huffmanBitWriter).writeCode',
195
+ 'runtime/pprof.(*profileBuilder).appendLocsForStack',
196
+ 'runtime/pprof.(*profileBuilder).stringIndex',
197
+ 'runtime.mapassign_faststr',
198
+ 'runtime.hashGrow',
199
+ 'runtime.makeBucketArray',
200
+ 'runtime.newarray',
201
+ 'runtime/pprof.(*profileBuilder).emitLocation',
202
+ 'runtime.mapassign_fast64',
203
+ 'runtime.growWork_fast64',
204
+ 'runtime.bucketShift',
205
+ 'runtime.mapaccess2_fast64',
206
+ 'runtime.memhash64',
207
+ 'runtime.GC',
208
+ 'runtime.osyield',
209
+ 'github.com/valyala/bytebufferpool.(*ByteBuffer).WriteString',
210
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.(*Profile).Get',
211
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.(*Profile).findFunctionName',
212
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.(*Profile).findLocation',
213
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.(*Profile).findLocation.func1',
214
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.(*Profile).findFunction',
215
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.(*Profile).findFunction.func1',
216
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/gospy.(*GoSpy).Snapshot.func3',
217
+ 'github.com/pyroscope-io/pyroscope/pkg/agent.(*ProfileSession).takeSnapshots.func1',
218
+ 'github.com/pyroscope-io/pyroscope/pkg/structs/transporttrie.(*Trie).Insert',
219
+ 'github.com/pyroscope-io/pyroscope/pkg/structs/transporttrie.(*trieNode).findNodeAt',
220
+ 'runtime.newobject',
221
+ 'runtime.releasem',
222
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/gospy.getHeapProfile',
223
+ 'io/ioutil.ReadAll',
224
+ 'io.ReadAll',
225
+ 'compress/gzip.(*Reader).Read',
226
+ 'compress/flate.(*decompressor).Read',
227
+ 'compress/flate.(*dictDecoder).availWrite',
228
+ 'compress/flate.(*decompressor).huffmanBlock',
229
+ 'compress/flate.(*decompressor).huffSym',
230
+ 'github.com/pyroscope-io/pyroscope/pkg/convert.ParsePprof',
231
+ 'google.golang.org/protobuf/proto.Unmarshal',
232
+ 'google.golang.org/protobuf/proto.UnmarshalOptions.unmarshal',
233
+ 'google.golang.org/protobuf/internal/impl.(*MessageInfo).unmarshal',
234
+ 'google.golang.org/protobuf/internal/impl.(*MessageInfo).unmarshalPointer',
235
+ 'google.golang.org/protobuf/internal/impl.pointer.AppendPointerSlice',
236
+ 'runtime.(*spanSet).pop',
237
+ 'google.golang.org/protobuf/internal/impl.consumeStringSliceValidateUTF8',
238
+ 'runtime.slicebytetostring',
239
+ 'github.com/pyroscope-io/pyroscope/pkg/agent.(*ProfileSession).reset',
240
+ 'github.com/pyroscope-io/pyroscope/pkg/agent.(*ProfileSession).uploadTries',
241
+ 'github.com/pyroscope-io/pyroscope/pkg/structs/transporttrie.(*Trie).Diff',
242
+ 'github.com/pyroscope-io/pyroscope/pkg/structs/transporttrie.(*Trie).Diff.func1',
243
+ 'runtime.nextFreeFast',
244
+ 'github.com/pyroscope-io/pyroscope/pkg/agent.(*ProfileSession).isDueForReset',
245
+ 'time.Now',
246
+ 'runtime.walltime',
247
+ 'github.com/dgraph-io/badger/v2.(*levelsController).runCompactor',
248
+ 'runtime.gopark',
249
+ 'github.com/dgraph-io/badger/v2.(*levelsController).pickCompactLevels',
250
+ 'github.com/dgraph-io/badger/v2.(*compactStatus).overlapsWith',
251
+ 'github.com/dgraph-io/badger/v2.(*levelsController).isLevel0Compactable',
252
+ 'sync.(*RWMutex).RLock',
253
+ 'github.com/dgraph-io/badger/v2.(*DB).doWrites.func1',
254
+ 'github.com/dgraph-io/badger/v2.(*DB).writeRequests',
255
+ 'github.com/dgraph-io/badger/v2.(*valueLog).write',
256
+ 'github.com/dgraph-io/badger/v2.(*valueLog).write.func2',
257
+ 'github.com/dgraph-io/badger/v2.(*valueLog).write.func1',
258
+ 'os.(*File).write',
259
+ 'syscall.Write',
260
+ 'syscall.write',
261
+ 'syscall.Syscall',
262
+ 'github.com/dgraph-io/badger/v2.(*logFile).encodeEntry',
263
+ 'bytes.makeSlice',
264
+ 'runtime.(*mcache).allocLarge',
265
+ ],
266
+ levels: [
267
+ [0, 178, 0, 0],
268
+ [
269
+ 0, 2, 0, 210, 2, 3, 0, 204, 5, 39, 0, 126, 44, 3, 0, 111, 47, 15, 0, 79,
270
+ 62, 1, 0, 77, 63, 4, 0, 65, 67, 3, 0, 58, 70, 56, 0, 38, 126, 52, 0, 1,
271
+ ],
272
+ [
273
+ 0, 2, 0, 211, 2, 1, 0, 208, 3, 1, 0, 206, 4, 1, 0, 127, 5, 1, 0, 201, 6,
274
+ 2, 0, 196, 8, 34, 0, 131, 42, 2, 0, 127, 44, 3, 0, 112, 47, 15, 0, 80,
275
+ 62, 1, 1, 78, 63, 1, 0, 72, 64, 3, 0, 39, 67, 3, 2, 59, 70, 56, 0, 39,
276
+ 126, 52, 0, 2,
277
+ ],
278
+ [
279
+ 0, 2, 0, 212, 2, 1, 1, 209, 3, 1, 1, 207, 4, 1, 1, 205, 5, 1, 0, 202, 6,
280
+ 2, 0, 197, 8, 5, 0, 179, 13, 17, 0, 167, 30, 1, 0, 166, 31, 4, 0, 164,
281
+ 35, 7, 0, 132, 42, 1, 0, 129, 43, 1, 1, 128, 44, 3, 0, 113, 47, 10, 0,
282
+ 94, 57, 5, 0, 81, 63, 1, 0, 73, 64, 3, 0, 66, 69, 1, 0, 60, 70, 56, 0,
283
+ 40, 126, 52, 0, 3,
284
+ ],
285
+ [
286
+ 0, 1, 0, 219, 1, 1, 0, 213, 5, 1, 1, 203, 6, 2, 0, 198, 8, 3, 0, 187,
287
+ 11, 2, 0, 180, 13, 7, 0, 173, 20, 10, 1, 168, 30, 1, 1, 56, 31, 4, 1,
288
+ 59, 35, 7, 0, 133, 42, 1, 1, 130, 44, 2, 0, 115, 46, 1, 0, 114, 47, 10,
289
+ 1, 95, 57, 5, 0, 82, 63, 1, 0, 74, 64, 3, 0, 67, 69, 1, 0, 61, 70, 1, 1,
290
+ 57, 71, 55, 6, 41, 126, 46, 7, 13, 172, 1, 1, 12, 173, 4, 1, 6, 177, 1,
291
+ 0, 4,
292
+ ],
293
+ [
294
+ 0, 1, 0, 91, 1, 1, 0, 214, 6, 2, 0, 176, 8, 3, 0, 188, 11, 2, 0, 181,
295
+ 13, 7, 0, 174, 21, 5, 0, 171, 26, 4, 0, 169, 32, 3, 0, 60, 35, 7, 0,
296
+ 134, 44, 2, 0, 116, 46, 1, 0, 97, 48, 1, 0, 89, 49, 7, 2, 97, 56, 1, 0,
297
+ 96, 57, 4, 0, 87, 61, 1, 0, 83, 63, 1, 0, 75, 64, 3, 0, 68, 69, 1, 0,
298
+ 39, 77, 9, 0, 54, 86, 3, 0, 50, 89, 3, 3, 49, 92, 3, 3, 48, 95, 31, 16,
299
+ 42, 133, 10, 5, 24, 143, 16, 3, 21, 159, 1, 0, 19, 160, 1, 1, 18, 161,
300
+ 11, 1, 14, 174, 3, 0, 7, 177, 1, 1, 5,
301
+ ],
302
+ [
303
+ 0, 1, 0, 92, 1, 1, 0, 215, 6, 2, 0, 199, 8, 3, 0, 189, 11, 2, 0, 182,
304
+ 13, 7, 1, 175, 21, 5, 3, 123, 26, 4, 2, 123, 32, 3, 0, 61, 35, 3, 0,
305
+ 152, 38, 3, 0, 143, 41, 1, 0, 135, 44, 2, 0, 117, 46, 1, 0, 98, 48, 1,
306
+ 1, 110, 51, 1, 1, 109, 52, 4, 0, 98, 56, 1, 1, 56, 57, 4, 0, 88, 61, 1,
307
+ 0, 84, 63, 1, 1, 76, 64, 3, 0, 69, 69, 1, 0, 62, 77, 9, 0, 55, 86, 1, 1,
308
+ 53, 87, 2, 0, 51, 111, 5, 5, 47, 116, 3, 3, 46, 119, 4, 4, 45, 123, 2,
309
+ 2, 44, 125, 1, 1, 43, 138, 5, 1, 25, 146, 12, 12, 23, 158, 1, 1, 22,
310
+ 159, 1, 1, 20, 162, 10, 0, 15, 174, 3, 0, 8,
311
+ ],
312
+ [
313
+ 0, 1, 0, 220, 1, 1, 0, 216, 6, 2, 0, 177, 8, 3, 0, 190, 11, 2, 0, 183,
314
+ 14, 6, 4, 176, 24, 2, 2, 172, 28, 2, 2, 170, 32, 3, 0, 39, 35, 1, 0,
315
+ 162, 36, 1, 0, 158, 37, 1, 0, 153, 38, 2, 0, 145, 40, 1, 1, 144, 41, 1,
316
+ 0, 136, 44, 2, 0, 118, 46, 1, 0, 100, 52, 2, 0, 100, 54, 1, 1, 48, 55,
317
+ 1, 1, 99, 57, 3, 1, 89, 60, 1, 1, 56, 61, 1, 0, 85, 64, 3, 0, 70, 69, 1,
318
+ 0, 63, 77, 8, 8, 53, 85, 1, 1, 56, 87, 2, 2, 52, 139, 3, 0, 26, 142, 1,
319
+ 0, 4, 162, 10, 0, 16, 174, 3, 0, 9,
320
+ ],
321
+ [
322
+ 0, 1, 0, 93, 1, 1, 0, 217, 6, 1, 1, 98, 7, 1, 1, 200, 8, 3, 0, 191, 11,
323
+ 1, 0, 185, 12, 1, 1, 184, 18, 1, 1, 56, 19, 1, 0, 177, 32, 3, 0, 129,
324
+ 35, 1, 1, 163, 36, 1, 0, 159, 37, 1, 0, 154, 38, 2, 0, 146, 41, 1, 0,
325
+ 137, 44, 2, 0, 119, 46, 1, 0, 101, 52, 2, 0, 101, 58, 1, 0, 91, 59, 1,
326
+ 1, 90, 61, 1, 0, 86, 64, 3, 3, 71, 69, 1, 1, 64, 139, 1, 0, 35, 140, 1,
327
+ 1, 34, 141, 1, 0, 27, 142, 1, 1, 5, 162, 10, 1, 17, 174, 3, 0, 10,
328
+ ],
329
+ [
330
+ 0, 1, 0, 98, 1, 1, 1, 218, 8, 2, 0, 194, 10, 1, 0, 192, 11, 1, 1, 186,
331
+ 19, 1, 1, 178, 32, 3, 1, 130, 36, 1, 0, 160, 37, 1, 0, 155, 38, 2, 0,
332
+ 147, 41, 1, 0, 138, 44, 2, 0, 120, 46, 1, 0, 105, 52, 1, 0, 105, 53, 1,
333
+ 0, 102, 58, 1, 0, 92, 61, 1, 1, 56, 139, 1, 0, 36, 141, 1, 0, 28, 163,
334
+ 9, 9, 11, 174, 3, 3, 11,
335
+ ],
336
+ [
337
+ 0, 1, 0, 221, 8, 2, 1, 195, 10, 1, 0, 97, 33, 2, 2, 165, 36, 1, 1, 161,
338
+ 37, 1, 0, 156, 38, 2, 0, 148, 41, 1, 0, 139, 44, 2, 0, 121, 46, 1, 0,
339
+ 106, 52, 1, 0, 106, 53, 1, 0, 103, 58, 1, 1, 93, 139, 1, 0, 37, 141, 1,
340
+ 0, 29,
341
+ ],
342
+ [
343
+ 0, 1, 0, 107, 9, 1, 1, 56, 10, 1, 0, 98, 37, 1, 0, 157, 38, 2, 0, 149,
344
+ 41, 1, 0, 140, 44, 2, 0, 122, 46, 1, 0, 107, 52, 1, 0, 107, 53, 1, 1,
345
+ 104, 139, 1, 0, 8, 141, 1, 0, 30,
346
+ ],
347
+ [
348
+ 0, 1, 1, 108, 10, 1, 0, 100, 37, 1, 0, 98, 38, 2, 1, 150, 41, 1, 0, 141,
349
+ 44, 2, 0, 123, 46, 1, 1, 108, 52, 1, 1, 108, 139, 1, 0, 9, 141, 1, 0,
350
+ 31,
351
+ ],
352
+ [
353
+ 10, 1, 0, 101, 37, 1, 1, 99, 39, 1, 1, 151, 41, 1, 1, 142, 44, 2, 0,
354
+ 124, 139, 1, 0, 10, 141, 1, 0, 32,
355
+ ],
356
+ [10, 1, 0, 105, 44, 2, 2, 125, 139, 1, 1, 11, 141, 1, 0, 33],
357
+ [10, 1, 1, 193, 141, 1, 0, 7],
358
+ [141, 1, 0, 8],
359
+ [141, 1, 1, 9],
360
+ ],
361
+ numTicks: 178,
362
+ maxSelf: 16,
363
+ spyName: 'gospy' as const,
364
+ sampleRate: 100,
365
+ units: 'samples' as const,
366
+ format: 'single' as const,
367
+ version: 1,
368
+ },
369
+ DiffTree: {
370
+ names: [
371
+ 'total',
372
+ 'runtime.main',
373
+ 'main.main',
374
+ 'main.becomesAdded',
375
+ 'main.becomesSlower',
376
+ 'main.work',
377
+ 'runtime.asyncPreempt',
378
+ 'main.becomesFaster',
379
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/upstream/remote.(*Remote).handleJobs',
380
+ 'github.com/pyroscope-io/pyroscope/pkg/agent/upstream/remote.(*Remote).safeUpload',
381
+ 'net/http.(*Client).Do',
382
+ 'net/http.(*Client).do',
383
+ 'net/http.(*Client).send',
384
+ 'net/http.send',
385
+ 'net/http.(*Transport).RoundTrip',
386
+ 'net/http.setupRewindBody',
387
+ 'runtime.newobject',
388
+ 'runtime.mallocgc',
389
+ 'runtime.arenaIndex',
390
+ 'github.com/pyroscope-io/pyroscope/pkg/agent.(*ProfileSession).takeSnapshots',
391
+ 'runtime.heapBitsSetType',
392
+ ],
393
+ levels: [
394
+ [0, 991, 0, 0, 987, 0, 0],
395
+ [0, 0, 0, 0, 1, 0, 19, 0, 0, 0, 1, 1, 0, 8, 0, 991, 0, 2, 985, 0, 1],
396
+ [
397
+ 0, 0, 0, 0, 1, 0, 16, 0, 0, 0, 1, 1, 0, 9, 0, 217, 0, 2, 229, 0, 3, 217,
398
+ 165, 0, 231, 147, 0, 7, 382, 603, 1, 378, 604, 0, 4, 985, 6, 6, 982, 5,
399
+ 4, 2,
400
+ ],
401
+ [
402
+ 0, 0, 0, 0, 1, 0, 17, 0, 0, 0, 1, 1, 0, 10, 0, 217, 217, 2, 229, 229, 5,
403
+ 217, 165, 165, 231, 147, 147, 5, 383, 602, 601, 378, 604, 604, 5, 991,
404
+ 0, 0, 986, 1, 1, 3,
405
+ ],
406
+ [0, 0, 0, 0, 1, 1, 20, 0, 0, 0, 1, 1, 0, 11, 984, 1, 1, 982, 0, 0, 6],
407
+ [0, 0, 0, 1, 1, 0, 12],
408
+ [0, 0, 0, 1, 1, 0, 13],
409
+ [0, 0, 0, 1, 1, 0, 14],
410
+ [0, 0, 0, 1, 1, 0, 15],
411
+ [0, 0, 0, 1, 1, 0, 16],
412
+ [0, 0, 0, 1, 1, 0, 17],
413
+ [0, 0, 0, 1, 1, 1, 18],
414
+ ],
415
+ numTicks: 1978,
416
+ maxSelf: 604,
417
+ spyName: 'gospy' as const,
418
+ sampleRate: 100,
419
+ units: 'samples' as const,
420
+ format: 'double' as const,
421
+ leftTicks: 991,
422
+ rightTicks: 987,
423
+ version: 1,
424
+ },
425
+ };
426
+
427
+ export default TestData;
@@ -0,0 +1,31 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import { doubleFF } from '../../models';
3
+
4
+ // not entirely sure where this should fit
5
+ function getRatios(
6
+ level: number[],
7
+ j: number,
8
+ leftTicks: number,
9
+ rightTicks: number
10
+ ) {
11
+ const ff = doubleFF;
12
+
13
+ // throw an error
14
+ // since otherwise there's no way to calculate a diff
15
+ if (!leftTicks || !rightTicks) {
16
+ // ideally this should never happen
17
+ // however there must be a race condition caught in CI
18
+ // https://github.com/pyroscope-io/pyroscope/pull/439/checks?check_run_id=3808581168
19
+ console.error(
20
+ "Properties 'rightTicks' and 'leftTicks' are required. Can't calculate ratio."
21
+ );
22
+ return { leftRatio: 0, rightRatio: 0 };
23
+ }
24
+
25
+ const leftRatio = ff.getBarTotalLeft(level, j) / leftTicks;
26
+ const rightRatio = ff.getBarTotalRght(level, j) / rightTicks;
27
+
28
+ return { leftRatio, rightRatio };
29
+ }
30
+
31
+ export { getRatios };
@@ -0,0 +1,6 @@
1
+ export type ViewTypes =
2
+ | 'flamegraph'
3
+ | 'both'
4
+ | 'table'
5
+ | 'sandwich'
6
+ | 'graphviz';