benchforge 0.1.9 → 0.2.4
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.
- package/LICENSE +20 -0
- package/README.md +99 -260
- package/bin/benchforge +1 -2
- package/dist/AnalyzeArchive-8NCJhmhS.mjs +145 -0
- package/dist/AnalyzeArchive-8NCJhmhS.mjs.map +1 -0
- package/dist/BenchMatrix-BZVrBB_h.mjs +1050 -0
- package/dist/BenchMatrix-BZVrBB_h.mjs.map +1 -0
- package/dist/BenchRunner-DglX1NOn.d.mts +302 -0
- package/dist/CoverageSampler-D5T9DRqe.mjs +27 -0
- package/dist/CoverageSampler-D5T9DRqe.mjs.map +1 -0
- package/dist/Formatters-BWj3d4sv.mjs +95 -0
- package/dist/Formatters-BWj3d4sv.mjs.map +1 -0
- package/dist/{HeapSampler-B8dtKHn1.mjs → HeapSampler-Dq-hpXem.mjs} +4 -4
- package/dist/HeapSampler-Dq-hpXem.mjs.map +1 -0
- package/dist/RunBenchCLI-C17DrJz8.mjs +3075 -0
- package/dist/RunBenchCLI-C17DrJz8.mjs.map +1 -0
- package/dist/StatisticalUtils-BD92crgM.mjs +255 -0
- package/dist/StatisticalUtils-BD92crgM.mjs.map +1 -0
- package/dist/TimeSampler-Ds8n7l2B.mjs +29 -0
- package/dist/TimeSampler-Ds8n7l2B.mjs.map +1 -0
- package/dist/ViewerServer-BJhdnxlN.mjs +639 -0
- package/dist/ViewerServer-BJhdnxlN.mjs.map +1 -0
- package/dist/ViewerServer-CuMNdNBz.mjs +2 -0
- package/dist/bin/benchforge.mjs +4 -5
- package/dist/bin/benchforge.mjs.map +1 -1
- package/dist/index.d.mts +731 -522
- package/dist/index.mjs +98 -3
- package/dist/index.mjs.map +1 -0
- package/dist/runners/WorkerScript.d.mts +12 -4
- package/dist/runners/WorkerScript.mjs +92 -120
- package/dist/runners/WorkerScript.mjs.map +1 -1
- package/dist/viewer/assets/CIPlot-BkOvMoMa.js +1 -0
- package/dist/viewer/assets/HistogramKde-CmSyUFY0.js +1 -0
- package/dist/viewer/assets/LegendUtils-BJpbn_jr.js +55 -0
- package/dist/viewer/assets/SampleTimeSeries-C4VBhXr3.js +1 -0
- package/dist/viewer/assets/index-Br9bp_cX.js +153 -0
- package/dist/viewer/assets/index-NzXXe_CC.css +1 -0
- package/dist/viewer/index.html +19 -0
- package/dist/viewer/speedscope/LICENSE +21 -0
- package/dist/viewer/speedscope/SourceCodePro-Regular.ttf-ILST5JV6.woff2 +0 -0
- package/dist/viewer/speedscope/favicon-16x16-V2DMIAZS.js +2 -0
- package/dist/viewer/speedscope/favicon-16x16-V2DMIAZS.js.map +7 -0
- package/dist/viewer/speedscope/favicon-16x16-VSI62OPJ.png +0 -0
- package/dist/viewer/speedscope/favicon-32x32-3EB2YCUY.png +0 -0
- package/dist/viewer/speedscope/favicon-32x32-THY3JDJL.js +2 -0
- package/dist/viewer/speedscope/favicon-32x32-THY3JDJL.js.map +7 -0
- package/dist/viewer/speedscope/favicon-FOKUP5Y5.ico +0 -0
- package/dist/viewer/speedscope/favicon-M34RF7BI.js +2 -0
- package/dist/viewer/speedscope/favicon-M34RF7BI.js.map +7 -0
- package/dist/viewer/speedscope/file-format-schema.json +274 -0
- package/dist/viewer/speedscope/index.html +19 -0
- package/dist/viewer/speedscope/jfrview_bg-BLJXNNQB.wasm +0 -0
- package/dist/viewer/speedscope/perf-vertx-stacks-01-collapsed-all-ZNUIGAJL.txt +199 -0
- package/dist/viewer/speedscope/release.txt +3 -0
- package/dist/viewer/speedscope/source-code-pro.LICENSE.md +93 -0
- package/dist/viewer/speedscope/speedscope-GHPHNKXC.css +2 -0
- package/dist/viewer/speedscope/speedscope-GHPHNKXC.css.map +7 -0
- package/dist/viewer/speedscope/speedscope-QZFMJ7VP.js +212 -0
- package/dist/viewer/speedscope/speedscope-QZFMJ7VP.js.map +7 -0
- package/package.json +52 -26
- package/src/bin/benchforge.ts +2 -2
- package/src/cli/AnalyzeArchive.ts +232 -0
- package/src/cli/BrowserBench.ts +322 -0
- package/src/cli/CliArgs.ts +164 -48
- package/src/cli/CliExport.ts +179 -0
- package/src/cli/CliOptions.ts +147 -0
- package/src/cli/CliReport.ts +197 -0
- package/src/cli/FilterBenchmarks.ts +18 -30
- package/src/cli/RunBenchCLI.ts +138 -844
- package/src/cli/SuiteRunner.ts +160 -0
- package/src/cli/ViewerServer.ts +282 -0
- package/src/export/AllocExport.ts +121 -0
- package/src/export/ArchiveExport.ts +146 -0
- package/src/export/ArchiveFormat.ts +50 -0
- package/src/export/CoverageExport.ts +148 -0
- package/src/export/EditorUri.ts +10 -0
- package/src/export/PerfettoExport.ts +91 -126
- package/src/export/SpeedscopeTypes.ts +98 -0
- package/src/export/TimeExport.ts +115 -0
- package/src/index.ts +87 -62
- package/src/matrix/BenchMatrix.ts +230 -0
- package/src/matrix/CaseLoader.ts +8 -6
- package/src/matrix/MatrixDirRunner.ts +153 -0
- package/src/matrix/MatrixFilter.ts +55 -53
- package/src/matrix/MatrixInlineRunner.ts +50 -0
- package/src/matrix/MatrixReport.ts +94 -254
- package/src/matrix/VariantLoader.ts +9 -9
- package/src/profiling/browser/BenchLoop.ts +51 -0
- package/src/profiling/browser/BrowserCDP.ts +133 -0
- package/src/profiling/browser/BrowserGcStats.ts +33 -0
- package/src/profiling/browser/BrowserProfiler.ts +160 -0
- package/src/profiling/browser/CdpClient.ts +82 -0
- package/src/profiling/browser/CdpPage.ts +138 -0
- package/src/profiling/browser/ChromeLauncher.ts +158 -0
- package/src/profiling/browser/ChromeTraceEvent.ts +28 -0
- package/src/profiling/browser/PageLoadMode.ts +61 -0
- package/src/profiling/node/CoverageSampler.ts +27 -0
- package/src/profiling/node/CoverageTypes.ts +23 -0
- package/src/profiling/node/HeapSampleReport.ts +261 -0
- package/src/{heap-sample → profiling/node}/HeapSampler.ts +55 -13
- package/src/profiling/node/ResolvedProfile.ts +98 -0
- package/src/profiling/node/TimeSampler.ts +57 -0
- package/src/report/BenchmarkReport.ts +146 -0
- package/src/report/Colors.ts +9 -0
- package/src/report/Formatters.ts +110 -0
- package/src/report/GcSections.ts +151 -0
- package/src/{GitUtils.ts → report/GitUtils.ts} +18 -19
- package/src/report/HtmlReport.ts +223 -0
- package/src/report/ParseStats.ts +73 -0
- package/src/report/StandardSections.ts +147 -0
- package/src/report/ViewerSections.ts +286 -0
- package/src/report/text/TableReport.ts +253 -0
- package/src/report/text/TextReport.ts +123 -0
- package/src/runners/AdaptiveWrapper.ts +167 -287
- package/src/runners/BenchRunner.ts +27 -22
- package/src/{Benchmark.ts → runners/BenchmarkSpec.ts} +5 -6
- package/src/runners/CreateRunner.ts +5 -7
- package/src/runners/GcStats.ts +58 -61
- package/src/{MeasuredResults.ts → runners/MeasuredResults.ts} +43 -37
- package/src/runners/MergeBatches.ts +123 -0
- package/src/{NodeGC.ts → runners/NodeGC.ts} +2 -3
- package/src/runners/RunnerOrchestrator.ts +180 -296
- package/src/runners/RunnerUtils.ts +75 -1
- package/src/runners/SampleStats.ts +100 -0
- package/src/runners/TimingRunner.ts +244 -0
- package/src/runners/TimingUtils.ts +3 -2
- package/src/runners/WorkerScript.ts +162 -178
- package/src/stats/BootstrapDifference.ts +282 -0
- package/src/{PermutationTest.ts → stats/PermutationTest.ts} +31 -40
- package/src/stats/StatisticalUtils.ts +445 -0
- package/src/{tests → test}/AdaptiveConvergence.test.ts +10 -10
- package/src/test/AdaptiveRunner.test.ts +39 -41
- package/src/{tests → test}/AdaptiveSampling.test.ts +9 -9
- package/src/test/AdaptiveStatistics.integration.ts +9 -41
- package/src/{tests → test}/BenchMatrix.test.ts +31 -28
- package/src/test/BenchmarkReport.test.ts +63 -13
- package/src/test/BrowserBench.e2e.test.ts +186 -17
- package/src/test/BrowserBench.test.ts +10 -5
- package/src/test/BuildTimeSection.test.ts +130 -0
- package/src/test/CapSamples.test.ts +82 -0
- package/src/test/CoverageExport.test.ts +115 -0
- package/src/test/CoverageSampler.test.ts +33 -0
- package/src/test/HeapAttribution.test.ts +51 -0
- package/src/{tests → test}/MatrixFilter.test.ts +16 -16
- package/src/{tests → test}/MatrixReport.test.ts +1 -1
- package/src/test/PermutationTest.test.ts +1 -1
- package/src/{tests → test}/RealDataValidation.test.ts +6 -6
- package/src/test/RunBenchCLI.test.ts +57 -56
- package/src/test/RunnerOrchestrator.test.ts +12 -12
- package/src/test/StatisticalUtils.test.ts +48 -12
- package/src/{table-util/test → test}/TableReport.test.ts +2 -2
- package/src/test/TestUtils.ts +35 -30
- package/src/test/TimeExport.test.ts +139 -0
- package/src/test/TimeSampler.test.ts +37 -0
- package/src/test/ViewerLive.e2e.test.ts +159 -0
- package/src/test/ViewerStatic.static.e2e.test.ts +137 -0
- package/src/{tests → test}/fixtures/baseline/impl.ts +1 -1
- package/src/{tests → test}/fixtures/bevy30-samples.ts +3 -1
- package/src/test/fixtures/cases/asyncCases.ts +9 -0
- package/src/{tests → test}/fixtures/cases/cases.ts +5 -2
- package/src/test/fixtures/cases/variants/product.ts +2 -0
- package/src/test/fixtures/cases/variants/sum.ts +2 -0
- package/src/test/fixtures/discover/fast.ts +1 -0
- package/src/{tests → test}/fixtures/discover/slow.ts +1 -1
- package/src/test/fixtures/invalid/bad.ts +1 -0
- package/src/test/fixtures/loader/fast.ts +1 -0
- package/src/{tests → test}/fixtures/loader/slow.ts +1 -1
- package/src/test/fixtures/loader/stateful.ts +2 -0
- package/src/test/fixtures/stateful/stateful.ts +2 -0
- package/src/test/fixtures/variants/extra.ts +1 -0
- package/src/test/fixtures/variants/impl.ts +1 -0
- package/src/test/fixtures/worker/fast.ts +1 -0
- package/src/{tests → test}/fixtures/worker/slow.ts +1 -1
- package/src/viewer/DateFormat.ts +30 -0
- package/src/viewer/Helpers.ts +23 -0
- package/src/viewer/LineData.ts +120 -0
- package/src/viewer/Providers.ts +191 -0
- package/src/viewer/ReportData.ts +123 -0
- package/src/viewer/State.ts +49 -0
- package/src/viewer/Theme.ts +15 -0
- package/src/viewer/components/App.tsx +73 -0
- package/src/viewer/components/DropZone.tsx +71 -0
- package/src/viewer/components/LazyPlot.ts +33 -0
- package/src/viewer/components/SamplesPanel.tsx +214 -0
- package/src/viewer/components/Shell.tsx +26 -0
- package/src/viewer/components/SourcePanel.tsx +216 -0
- package/src/viewer/components/SummaryPanel.tsx +332 -0
- package/src/viewer/components/TabBar.tsx +131 -0
- package/src/viewer/components/TabContent.tsx +46 -0
- package/src/viewer/components/ThemeToggle.tsx +50 -0
- package/src/viewer/index.html +20 -0
- package/src/viewer/main.tsx +4 -0
- package/src/viewer/plots/CIPlot.ts +313 -0
- package/src/{html/browser → viewer/plots}/HistogramKde.ts +42 -47
- package/src/viewer/plots/LegendUtils.ts +134 -0
- package/src/viewer/plots/PlotTypes.ts +85 -0
- package/src/viewer/plots/RenderPlots.ts +230 -0
- package/src/viewer/plots/SampleTimeSeries.ts +306 -0
- package/src/viewer/plots/SvgHelpers.ts +136 -0
- package/src/viewer/plots/TimeSeriesMarks.ts +319 -0
- package/src/viewer/report.css +427 -0
- package/src/viewer/shell.css +357 -0
- package/src/viewer/tsconfig.json +11 -0
- package/dist/BenchRunner-CSKN9zPy.d.mts +0 -225
- package/dist/BrowserHeapSampler-DCeL42RE.mjs +0 -202
- package/dist/BrowserHeapSampler-DCeL42RE.mjs.map +0 -1
- package/dist/GcStats-ByEovUi1.mjs +0 -77
- package/dist/GcStats-ByEovUi1.mjs.map +0 -1
- package/dist/HeapSampler-B8dtKHn1.mjs.map +0 -1
- package/dist/TimingUtils-ClclVQ7E.mjs +0 -597
- package/dist/TimingUtils-ClclVQ7E.mjs.map +0 -1
- package/dist/browser/index.js +0 -914
- package/dist/src-Cf_LXwlp.mjs +0 -2873
- package/dist/src-Cf_LXwlp.mjs.map +0 -1
- package/src/BenchMatrix.ts +0 -380
- package/src/BenchmarkReport.ts +0 -156
- package/src/HtmlDataPrep.ts +0 -148
- package/src/StandardSections.ts +0 -261
- package/src/StatisticalUtils.ts +0 -176
- package/src/TypeUtil.ts +0 -8
- package/src/browser/BrowserGcStats.ts +0 -44
- package/src/browser/BrowserHeapSampler.ts +0 -271
- package/src/export/JsonExport.ts +0 -103
- package/src/export/JsonFormat.ts +0 -91
- package/src/heap-sample/HeapSampleReport.ts +0 -196
- package/src/html/HtmlReport.ts +0 -131
- package/src/html/HtmlTemplate.ts +0 -284
- package/src/html/Types.ts +0 -88
- package/src/html/browser/CIPlot.ts +0 -287
- package/src/html/browser/LegendUtils.ts +0 -163
- package/src/html/browser/RenderPlots.ts +0 -263
- package/src/html/browser/SampleTimeSeries.ts +0 -389
- package/src/html/browser/Types.ts +0 -96
- package/src/html/browser/index.ts +0 -1
- package/src/html/index.ts +0 -17
- package/src/runners/BasicRunner.ts +0 -364
- package/src/table-util/ConvergenceFormatters.ts +0 -19
- package/src/table-util/Formatters.ts +0 -152
- package/src/table-util/README.md +0 -70
- package/src/table-util/TableReport.ts +0 -293
- package/src/tests/fixtures/cases/asyncCases.ts +0 -7
- package/src/tests/fixtures/cases/variants/product.ts +0 -2
- package/src/tests/fixtures/cases/variants/sum.ts +0 -2
- package/src/tests/fixtures/discover/fast.ts +0 -1
- package/src/tests/fixtures/invalid/bad.ts +0 -1
- package/src/tests/fixtures/loader/fast.ts +0 -1
- package/src/tests/fixtures/loader/stateful.ts +0 -2
- package/src/tests/fixtures/stateful/stateful.ts +0 -2
- package/src/tests/fixtures/variants/extra.ts +0 -1
- package/src/tests/fixtures/variants/impl.ts +0 -1
- package/src/tests/fixtures/worker/fast.ts +0 -1
- package/src/{table-util/test → test}/TableValueExtractor.test.ts +0 -0
- package/src/{table-util/test → test}/TableValueExtractor.ts +9 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--tab-bar-bg:#f8f8f8;--tab-border:#ccc;--tab-color:#999;--tab-active-color:#222;--tab-accent:#5f61d8;--body-bg:#fff;--source-bg:#fff;--source-color:#333;--source-highlight:#fffbdd;--source-line-color:#999}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--tab-bar-bg:#1e1e1e;--tab-border:#555;--tab-color:#999;--tab-active-color:#fff;--tab-accent:#7b7dea;--body-bg:#181818;--source-bg:#1e1e1e;--source-color:#d4d4d4;--source-highlight:#3a3a00;--source-line-color:#666}}:root[data-theme=dark]{--tab-bar-bg:#1e1e1e;--tab-border:#555;--tab-color:#999;--tab-active-color:#fff;--tab-accent:#7b7dea;--body-bg:#181818;--source-bg:#1e1e1e;--source-color:#d4d4d4;--source-highlight:#3a3a00;--source-line-color:#666}html,body{background:var(--body-bg);height:100%;color:var(--source-color);font-family:system-ui,sans-serif}body{flex-direction:column;display:flex}#app{display:contents}.tab-bar{background:var(--tab-bar-bg);z-index:10;flex-shrink:0;align-items:center;gap:0;padding:6px 8px;display:flex;position:relative}.tab-bar:after{content:"";background:var(--tab-border);height:1px;position:absolute;bottom:0;left:0;right:0}.tab{color:var(--tab-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:0;align-items:center;gap:6px;padding:5px 12px;font-family:system-ui,sans-serif;font-size:13px;display:flex;position:relative}.tab:hover:not(:disabled){color:var(--tab-active-color)}.tab:disabled{opacity:.4;cursor:not-allowed}.tab.active{color:var(--tab-accent);z-index:1;border-bottom:2px solid var(--tab-accent);margin-bottom:-6.5px;padding-bottom:11.5px;font-weight:600;position:relative}.tab .tab-close{width:16px;height:16px;color:inherit;cursor:pointer;opacity:0;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.tab:hover .tab-close{opacity:.6}.tab .tab-close:hover{opacity:1}.tab-spacer{flex:1}.theme-toggle{align-items:center;gap:2px;margin-right:8px;display:flex}.theme-btn{cursor:pointer;color:var(--tab-color);opacity:.6;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;display:flex}.theme-btn:hover{opacity:1}.theme-btn.active{color:var(--tab-accent);opacity:1;background:color-mix(in srgb, var(--tab-accent) 15%, transparent)}.archive-btn{color:var(--tab-color);opacity:.8;font-size:12px}.archive-btn:hover{opacity:1}.tab-content{flex:1;min-height:0;position:relative}#speedscope-iframe,#time-speedscope-iframe{border:none;width:100%;height:calc(100% - 20px);position:absolute;top:20px;left:0}.source-panel{background:var(--source-bg);padding:0 24px 16px;display:none;position:absolute;inset:0;overflow:auto}.source-panel.active{display:block}.source-header{border-bottom:1px solid var(--tab-border);align-items:center;gap:12px;margin-bottom:8px;padding:10px 0;font-family:system-ui,sans-serif;font-size:13px;display:flex}.source-path{color:var(--tab-color);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.source-editor-link{color:var(--tab-accent);white-space:nowrap;font-size:12px;text-decoration:none}.source-editor-link:hover{text-decoration:underline}.source-code pre{counter-reset:line;white-space:normal;margin:0;font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace;font-size:13px;line-height:1.6}.source-code code{white-space:normal}.source-code .line{counter-increment:line;white-space:pre;padding:0 16px 0 60px;display:block;position:relative}.source-code .line:before{content:counter(line);text-align:right;width:48px;color:var(--source-line-color);-webkit-user-select:none;user-select:none;padding-right:8px;font-size:12px;position:absolute;left:0}.source-code .line.highlighted{background:var(--source-highlight)}.source-code .line .gutter.heat{background:rgba(234, 179, 8, calc(var(--heat,0) * .18))}.source-code .line .gutter{text-align:right;-webkit-user-select:none;user-select:none;opacity:.85;width:64px;padding-right:8px;font-size:11px;display:inline-block}.source-code .line .gutter:last-of-type{margin-right:8px}.source-code .line .gutter-count{color:#888}.source-code .line .gutter-alloc{color:#b45309}.source-code .line .gutter-time{color:#2563eb}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .source-code .line .gutter.heat{background:rgba(234, 179, 8, calc(var(--heat,0) * .12))}:root:not([data-theme=light]) .source-code .line .gutter-count{color:#aaa}:root:not([data-theme=light]) .source-code .line .gutter-alloc{color:#fbbf24}:root:not([data-theme=light]) .source-code .line .gutter-time{color:#60a5fa}}:root[data-theme=dark] .source-code .line .gutter.heat{background:rgba(234, 179, 8, calc(var(--heat,0) * .12))}:root[data-theme=dark] .source-code .line .gutter-count{color:#aaa}:root[data-theme=dark] .source-code .line .gutter-alloc{color:#fbbf24}:root[data-theme=dark] .source-code .line .gutter-time{color:#60a5fa}.shiki{color:var(--shiki-light);background-color:var(--shiki-light-bg)}.shiki span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .shiki{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}:root:not([data-theme=light]) .shiki span{color:var(--shiki-dark)}}:root[data-theme=dark] .shiki{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}:root[data-theme=dark] .shiki span{color:var(--shiki-dark)}.source-placeholder{color:var(--tab-color);padding-top:16px;font-family:system-ui,sans-serif;font-size:14px}.source-placeholder code{background:var(--tab-border);border-radius:3px;padding:2px 6px;font-size:13px}.drop-zone{background:var(--body-bg);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.drop-zone.drag-over{background:var(--tab-bar-bg)}.drop-zone-content{text-align:center;color:var(--source-color)}.drop-zone-content h2{margin:16px 0 8px;font-size:24px}.drop-zone-content p{color:var(--tab-color);margin:8px 0}.drop-zone-content code{background:var(--tab-border);border-radius:3px;padding:2px 6px;font-size:13px}.drop-zone-divider{color:var(--tab-color);margin:16px 0;font-size:13px}.drop-zone-browse{background:var(--tab-accent);color:#fff;cursor:pointer;border-radius:6px;padding:8px 20px;font-size:14px;display:inline-block}.drop-zone-browse:hover{opacity:.9}p.drop-zone-error{color:#ef4444;margin-top:5em}.report-panel{background:#f5f5f5;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;display:none;position:absolute;inset:0;overflow:auto}.report-panel.active{display:block}.report-panel .report-header{background:#fff;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:10px 15px;display:flex;box-shadow:0 2px 4px #0000001a}.report-panel .cli-args{color:#555;word-break:break-word;background:#f0f0f0;border-radius:4px;padding:6px 10px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.report-panel .metadata{color:#666;font-size:12px}.report-panel .benchforge-version{color:#999;font-size:10px}.report-panel .header-right{text-align:right}.report-panel .version-info{color:#666;margin-top:6px;font-size:12px}.report-panel .benchmark-group{margin-bottom:24px}.report-panel .group-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2px solid #e0e0e0;align-items:center;gap:10px;padding:8px 0;display:flex}.report-panel .group-header h2{color:#555;margin:0;font-size:18px}.report-panel .group-toggle{color:#999;text-align:center;width:24px;font-size:40px;line-height:0;position:relative;top:-2px}.report-panel .badge{text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.report-panel .badge-faster{color:#166534;background:#dcfce7}.report-panel .badge-slower{color:#991b1b;background:#fee2e2}.report-panel .badge-uncertain{color:#1e40af;background:#dbeafe}.report-panel .badge-equivalent{color:#166534;background:#f0fdf4}.report-panel .batch-warnings{flex-direction:column;gap:.3em;margin-left:8px;display:flex}.report-panel .batch-warning{color:#92400e;font-size:11px}.report-panel .comparison-badge{align-items:center;gap:6px;display:inline-flex}.report-panel .ci-plot-container{vertical-align:middle;display:inline-block}.report-panel .ci-plot-container svg{display:block}.report-panel .ci-plot-inline{vertical-align:middle;margin-left:6px;display:inline-block}.report-panel .ci-plot-inline svg{display:block}.report-panel .panel-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px;display:grid}.report-panel .section-panel{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #00000014}.report-panel .panel-header{text-transform:uppercase;letter-spacing:.5px;color:#888;border-bottom:1px solid #f0f0f0;padding:8px 14px;font-size:11px;font-weight:600}.report-panel .panel-title-link{color:#5f61d8;cursor:pointer;text-decoration:none}.report-panel .panel-title-link:hover{text-decoration:underline}.report-panel .panel-body{padding:8px 14px}.report-panel .stat-row{margin-bottom:8px}.report-panel .stat-row:last-child{margin-bottom:0}.report-panel .row-header{align-items:center;gap:8px;margin-bottom:2px;display:flex}.report-panel .row-label{color:#666;font-size:12px;font-weight:600}.report-panel .primary-row .row-label{color:#444;font-size:14px;font-weight:700}.report-panel .shared-row{justify-content:space-between;align-items:center;display:flex}.report-panel .shared-row .row-value{color:#333;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.report-panel .run-entry{align-items:center;gap:8px;padding:1px 0 1px 16px;display:flex}.report-panel .run-name{color:#999;flex:0 0 var(--run-name-width,80px);font-size:12px}.report-panel .run-value{color:#333;font-variant-numeric:tabular-nums;text-align:right;flex:0 0 var(--run-value-width,80px);font-size:14px;font-weight:600}.report-panel .plot-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px;display:grid}.report-panel .plot-container{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.report-panel .plot-title{color:#333;margin-bottom:8px;font-size:18px;font-weight:600}.report-panel .plot-description{color:#666;margin-bottom:15px;font-size:14px}.report-panel .plot-controls{align-items:center;gap:12px;margin-bottom:10px;display:flex}.report-panel .series-toggles{gap:6px;display:flex}.report-panel .toggle-pill{color:#666;cursor:pointer;background:#f0f0f0;border:1px solid #ccc;border-radius:12px;padding:2px 10px;font-size:12px;transition:all .15s}.report-panel .toggle-pill.active{color:#fff;background:#4682b4;border-color:#4682b4}.report-panel .toggle-pill:hover{border-color:#999}.report-panel .batch-stepper{align-items:center;gap:4px;font-size:12px;display:flex}.report-panel .batch-btn{color:#555;cursor:pointer;background:#f0f0f0;border:1px solid #ccc;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:14px;line-height:1;display:flex}.report-panel .batch-btn:hover{background:#e0e0e0;border-color:#999}.report-panel .batch-label{text-align:center;color:#555;font-variant-numeric:tabular-nums;min-width:80px}.report-panel .plot-area{justify-content:center;align-items:center;min-height:300px;display:flex}.report-panel .plot-area svg{overflow:visible}.report-panel .plot-area svg g[aria-label=x-axis\ label] text{font-size:14px}.margin-zone{stroke:#f59e0b;opacity:.7}.margin-hatch-stroke{stroke:#f59e0b;stroke-width:3.5px;opacity:.7}.ci-region{opacity:.55}.ci-region-strong{opacity:.65}.ci-region.ci-faster,.ci-region.ci-equivalent{opacity:.5}.ci-region-strong.ci-faster,.ci-region-strong.ci-equivalent{opacity:.55}.ci-unreliable{stroke:none}.dist-stroke{opacity:.35}.dist-fill{opacity:.08}.report-panel .loading{color:#666;text-align:center;padding:20px;font-style:italic}.report-panel .single-sample-notice{color:#999;text-align:center;padding:20px;font-style:italic}.report-panel .error{color:#d32f2f;background:#ffebee;border-radius:4px;margin:10px 0;padding:15px}.report-panel .ci-faster{color:#22c55e}.report-panel .ci-slower{color:#ef4444}.report-panel .ci-uncertain{color:#6b7280}.report-panel .empty-state{color:#999;justify-content:center;align-items:center;height:100%;font-size:15px;display:flex}.report-panel .empty-state code{background:#e8e8e8;border-radius:3px;padding:2px 6px;font-size:13px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .report-panel{background:#181818}:root:not([data-theme=light]) .report-panel .report-header{background:#252525;box-shadow:0 2px 4px #0000004d}:root:not([data-theme=light]) .report-panel .cli-args{color:#bbb;background:#333}:root:not([data-theme=light]) .report-panel .metadata{color:#999}:root:not([data-theme=light]) .report-panel .benchforge-version{color:#666}:root:not([data-theme=light]) .report-panel .version-info{color:#999}:root:not([data-theme=light]) .report-panel .group-header{border-color:#444}:root:not([data-theme=light]) .report-panel .group-header h2{color:#ccc}:root:not([data-theme=light]) .report-panel .group-toggle{color:#666}:root:not([data-theme=light]) .report-panel .section-panel{background:#252525;box-shadow:0 1px 3px #0000004d}:root:not([data-theme=light]) .report-panel .panel-header{color:#777;border-color:#333}:root:not([data-theme=light]) .report-panel .row-label{color:#999}:root:not([data-theme=light]) .report-panel .primary-row .row-label{color:#ccc}:root:not([data-theme=light]) .report-panel .row-value,:root:not([data-theme=light]) .report-panel .run-value{color:#ddd}:root:not([data-theme=light]) .report-panel .run-name{color:#777}:root:not([data-theme=light]) .report-panel .toggle-pill{color:#aaa;background:#333;border-color:#555}:root:not([data-theme=light]) .report-panel .toggle-pill.active{color:#fff;background:#4682b4;border-color:#4682b4}:root:not([data-theme=light]) .report-panel .toggle-pill:hover{border-color:#777}:root:not([data-theme=light]) .report-panel .batch-btn{color:#aaa;background:#333;border-color:#555}:root:not([data-theme=light]) .report-panel .batch-btn:hover{background:#444;border-color:#777}:root:not([data-theme=light]) .report-panel .batch-label{color:#aaa}:root:not([data-theme=light]) .report-panel .plot-container{background:#252525;box-shadow:0 2px 4px #0000004d}:root:not([data-theme=light]) .report-panel .plot-title{color:#ddd}:root:not([data-theme=light]) .report-panel .plot-description,:root:not([data-theme=light]) .report-panel .loading{color:#999}:root:not([data-theme=light]) .report-panel .empty-state{color:#666}:root:not([data-theme=light]) .report-panel .empty-state code{background:#333}:root:not([data-theme=light]) .dist-stroke{opacity:.35}:root:not([data-theme=light]) .dist-fill{opacity:.08}:root:not([data-theme=light]) .report-panel .badge-faster{color:#bbf7d0;background:#166534}:root:not([data-theme=light]) .report-panel .badge-slower{color:#fecaca;background:#991b1b}:root:not([data-theme=light]) .report-panel .badge-uncertain{color:#bfdbfe;background:#1e40af}:root:not([data-theme=light]) .report-panel .badge-equivalent{color:#bbf7d0;background:#166534}:root:not([data-theme=light]) .margin-hatch-stroke,:root:not([data-theme=light]) .margin-zone{opacity:.65}:root:not([data-theme=light]) .ci-region{opacity:.2}:root:not([data-theme=light]) .ci-region-strong{opacity:.35}:root:not([data-theme=light]) .ci-region.ci-faster,:root:not([data-theme=light]) .ci-region.ci-equivalent{opacity:.15}:root:not([data-theme=light]) .ci-region-strong.ci-faster,:root:not([data-theme=light]) .ci-region-strong.ci-equivalent{opacity:.25}}:root[data-theme=dark] .report-panel{background:#181818}:root[data-theme=dark] .report-panel .report-header{background:#252525;box-shadow:0 2px 4px #0000004d}:root[data-theme=dark] .report-panel .cli-args{color:#bbb;background:#333}:root[data-theme=dark] .report-panel .metadata{color:#999}:root[data-theme=dark] .report-panel .benchforge-version{color:#666}:root[data-theme=dark] .report-panel .version-info{color:#999}:root[data-theme=dark] .report-panel .group-header{border-color:#444}:root[data-theme=dark] .report-panel .group-header h2{color:#ccc}:root[data-theme=dark] .report-panel .group-toggle{color:#666}:root[data-theme=dark] .report-panel .section-panel{background:#252525;box-shadow:0 1px 3px #0000004d}:root[data-theme=dark] .report-panel .panel-header{color:#777;border-color:#333}:root[data-theme=dark] .report-panel .row-label{color:#999}:root[data-theme=dark] .report-panel .primary-row .row-label{color:#ccc}:root[data-theme=dark] .report-panel .row-value,:root[data-theme=dark] .report-panel .run-value{color:#ddd}:root[data-theme=dark] .report-panel .run-name{color:#777}:root[data-theme=dark] .report-panel .toggle-pill{color:#aaa;background:#333;border-color:#555}:root[data-theme=dark] .report-panel .toggle-pill.active{color:#fff;background:#4682b4;border-color:#4682b4}:root[data-theme=dark] .report-panel .toggle-pill:hover{border-color:#777}:root[data-theme=dark] .report-panel .batch-btn{color:#aaa;background:#333;border-color:#555}:root[data-theme=dark] .report-panel .batch-btn:hover{background:#444;border-color:#777}:root[data-theme=dark] .report-panel .batch-label{color:#aaa}:root[data-theme=dark] .report-panel .plot-container{background:#252525;box-shadow:0 2px 4px #0000004d}:root[data-theme=dark] .report-panel .plot-title{color:#ddd}:root[data-theme=dark] .report-panel .plot-description,:root[data-theme=dark] .report-panel .loading{color:#999}:root[data-theme=dark] .report-panel .empty-state{color:#666}:root[data-theme=dark] .report-panel .empty-state code{background:#333}:root[data-theme=dark] .dist-stroke{opacity:.35}:root[data-theme=dark] .dist-fill{opacity:.08}:root[data-theme=dark] .report-panel .badge-faster{color:#bbf7d0;background:#166534}:root[data-theme=dark] .report-panel .badge-slower{color:#fecaca;background:#991b1b}:root[data-theme=dark] .report-panel .badge-uncertain{color:#bfdbfe;background:#1e40af}:root[data-theme=dark] .report-panel .badge-equivalent{color:#bbf7d0;background:#166534}:root[data-theme=dark] .margin-hatch-stroke,:root[data-theme=dark] .margin-zone{opacity:.4}:root[data-theme=dark] .ci-region{opacity:.2}:root[data-theme=dark] .ci-region-strong{opacity:.35}:root[data-theme=dark] .ci-region.ci-faster,:root[data-theme=dark] .ci-region.ci-equivalent{opacity:.15}:root[data-theme=dark] .ci-region-strong.ci-faster,:root[data-theme=dark] .ci-region-strong.ci-equivalent{opacity:.25}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Benchforge Viewer</title>
|
|
7
|
+
<script>
|
|
8
|
+
var m = document.cookie.match(/(?:^|; )theme=(light|dark)/);
|
|
9
|
+
if (m) document.documentElement.dataset.theme = m[1];
|
|
10
|
+
</script>
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-Br9bp_cX.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-NzXXe_CC.css">
|
|
13
|
+
</head>
|
|
14
|
+
|
|
15
|
+
<body>
|
|
16
|
+
<div id="app"></div>
|
|
17
|
+
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Jamie Wong
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"CloseFrameEvent": {
|
|
5
|
+
"properties": {
|
|
6
|
+
"at": {
|
|
7
|
+
"title": "at",
|
|
8
|
+
"type": "number"
|
|
9
|
+
},
|
|
10
|
+
"frame": {
|
|
11
|
+
"title": "frame",
|
|
12
|
+
"type": "number"
|
|
13
|
+
},
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "C",
|
|
16
|
+
"title": "type",
|
|
17
|
+
"type": "string"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"required": ["at", "frame", "type"],
|
|
21
|
+
"title": "CloseFrameEvent",
|
|
22
|
+
"type": "object"
|
|
23
|
+
},
|
|
24
|
+
"FileFormat.EventType": {
|
|
25
|
+
"enum": ["O", "C"],
|
|
26
|
+
"title": "FileFormat.EventType",
|
|
27
|
+
"type": "string"
|
|
28
|
+
},
|
|
29
|
+
"FileFormat.EventedProfile": {
|
|
30
|
+
"properties": {
|
|
31
|
+
"endValue": {
|
|
32
|
+
"title": "endValue",
|
|
33
|
+
"type": "number"
|
|
34
|
+
},
|
|
35
|
+
"events": {
|
|
36
|
+
"items": {
|
|
37
|
+
"anyOf": [
|
|
38
|
+
{
|
|
39
|
+
"$ref": "#/definitions/OpenFrameEvent"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"$ref": "#/definitions/CloseFrameEvent"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"title": "events",
|
|
47
|
+
"type": "array"
|
|
48
|
+
},
|
|
49
|
+
"name": {
|
|
50
|
+
"title": "name",
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"startValue": {
|
|
54
|
+
"title": "startValue",
|
|
55
|
+
"type": "number"
|
|
56
|
+
},
|
|
57
|
+
"type": {
|
|
58
|
+
"const": "evented",
|
|
59
|
+
"title": "type",
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"unit": {
|
|
63
|
+
"$ref": "#/definitions/FileFormat.ValueUnit",
|
|
64
|
+
"title": "unit"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"required": ["endValue", "events", "name", "startValue", "type", "unit"],
|
|
68
|
+
"title": "FileFormat.EventedProfile",
|
|
69
|
+
"type": "object"
|
|
70
|
+
},
|
|
71
|
+
"FileFormat.File": {
|
|
72
|
+
"properties": {
|
|
73
|
+
"$schema": {
|
|
74
|
+
"const": "https://www.speedscope.app/file-format-schema.json",
|
|
75
|
+
"title": "$schema",
|
|
76
|
+
"type": "string"
|
|
77
|
+
},
|
|
78
|
+
"activeProfileIndex": {
|
|
79
|
+
"title": "activeProfileIndex",
|
|
80
|
+
"type": "number"
|
|
81
|
+
},
|
|
82
|
+
"exporter": {
|
|
83
|
+
"title": "exporter",
|
|
84
|
+
"type": "string"
|
|
85
|
+
},
|
|
86
|
+
"name": {
|
|
87
|
+
"title": "name",
|
|
88
|
+
"type": "string"
|
|
89
|
+
},
|
|
90
|
+
"profiles": {
|
|
91
|
+
"items": {
|
|
92
|
+
"$ref": "#/definitions/FileFormat.Profile"
|
|
93
|
+
},
|
|
94
|
+
"title": "profiles",
|
|
95
|
+
"type": "array"
|
|
96
|
+
},
|
|
97
|
+
"shared": {
|
|
98
|
+
"properties": {
|
|
99
|
+
"frames": {
|
|
100
|
+
"items": {
|
|
101
|
+
"$ref": "#/definitions/FileFormat.Frame"
|
|
102
|
+
},
|
|
103
|
+
"title": "frames",
|
|
104
|
+
"type": "array"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"required": ["frames"],
|
|
108
|
+
"title": "shared",
|
|
109
|
+
"type": "object"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"required": ["$schema", "profiles", "shared"],
|
|
113
|
+
"title": "FileFormat.File",
|
|
114
|
+
"type": "object"
|
|
115
|
+
},
|
|
116
|
+
"FileFormat.Frame": {
|
|
117
|
+
"properties": {
|
|
118
|
+
"col": {
|
|
119
|
+
"title": "col",
|
|
120
|
+
"type": "number"
|
|
121
|
+
},
|
|
122
|
+
"file": {
|
|
123
|
+
"title": "file",
|
|
124
|
+
"type": "string"
|
|
125
|
+
},
|
|
126
|
+
"line": {
|
|
127
|
+
"title": "line",
|
|
128
|
+
"type": "number"
|
|
129
|
+
},
|
|
130
|
+
"name": {
|
|
131
|
+
"title": "name",
|
|
132
|
+
"type": "string"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"required": ["name"],
|
|
136
|
+
"title": "FileFormat.Frame",
|
|
137
|
+
"type": "object"
|
|
138
|
+
},
|
|
139
|
+
"FileFormat.IProfile": {
|
|
140
|
+
"properties": {
|
|
141
|
+
"type": {
|
|
142
|
+
"$ref": "#/definitions/FileFormat.ProfileType",
|
|
143
|
+
"title": "type"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"required": ["type"],
|
|
147
|
+
"title": "FileFormat.IProfile",
|
|
148
|
+
"type": "object"
|
|
149
|
+
},
|
|
150
|
+
"FileFormat.Profile": {
|
|
151
|
+
"anyOf": [
|
|
152
|
+
{
|
|
153
|
+
"$ref": "#/definitions/FileFormat.EventedProfile"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"$ref": "#/definitions/FileFormat.SampledProfile"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"title": "FileFormat.Profile"
|
|
160
|
+
},
|
|
161
|
+
"FileFormat.ProfileType": {
|
|
162
|
+
"enum": ["evented", "sampled"],
|
|
163
|
+
"title": "FileFormat.ProfileType",
|
|
164
|
+
"type": "string"
|
|
165
|
+
},
|
|
166
|
+
"FileFormat.SampledProfile": {
|
|
167
|
+
"properties": {
|
|
168
|
+
"endValue": {
|
|
169
|
+
"title": "endValue",
|
|
170
|
+
"type": "number"
|
|
171
|
+
},
|
|
172
|
+
"name": {
|
|
173
|
+
"title": "name",
|
|
174
|
+
"type": "string"
|
|
175
|
+
},
|
|
176
|
+
"samples": {
|
|
177
|
+
"items": {
|
|
178
|
+
"items": {
|
|
179
|
+
"type": "number"
|
|
180
|
+
},
|
|
181
|
+
"type": "array"
|
|
182
|
+
},
|
|
183
|
+
"title": "samples",
|
|
184
|
+
"type": "array"
|
|
185
|
+
},
|
|
186
|
+
"startValue": {
|
|
187
|
+
"title": "startValue",
|
|
188
|
+
"type": "number"
|
|
189
|
+
},
|
|
190
|
+
"type": {
|
|
191
|
+
"const": "sampled",
|
|
192
|
+
"title": "type",
|
|
193
|
+
"type": "string"
|
|
194
|
+
},
|
|
195
|
+
"unit": {
|
|
196
|
+
"$ref": "#/definitions/FileFormat.ValueUnit",
|
|
197
|
+
"title": "unit"
|
|
198
|
+
},
|
|
199
|
+
"weights": {
|
|
200
|
+
"items": {
|
|
201
|
+
"type": "number"
|
|
202
|
+
},
|
|
203
|
+
"title": "weights",
|
|
204
|
+
"type": "array"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
"required": [
|
|
208
|
+
"endValue",
|
|
209
|
+
"name",
|
|
210
|
+
"samples",
|
|
211
|
+
"startValue",
|
|
212
|
+
"type",
|
|
213
|
+
"unit",
|
|
214
|
+
"weights"
|
|
215
|
+
],
|
|
216
|
+
"title": "FileFormat.SampledProfile",
|
|
217
|
+
"type": "object"
|
|
218
|
+
},
|
|
219
|
+
"FileFormat.ValueUnit": {
|
|
220
|
+
"enum": [
|
|
221
|
+
"bytes",
|
|
222
|
+
"microseconds",
|
|
223
|
+
"milliseconds",
|
|
224
|
+
"nanoseconds",
|
|
225
|
+
"none",
|
|
226
|
+
"seconds"
|
|
227
|
+
],
|
|
228
|
+
"title": "FileFormat.ValueUnit",
|
|
229
|
+
"type": "string"
|
|
230
|
+
},
|
|
231
|
+
"IEvent": {
|
|
232
|
+
"properties": {
|
|
233
|
+
"at": {
|
|
234
|
+
"title": "at",
|
|
235
|
+
"type": "number"
|
|
236
|
+
},
|
|
237
|
+
"type": {
|
|
238
|
+
"$ref": "#/definitions/FileFormat.EventType",
|
|
239
|
+
"title": "type"
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"required": ["at", "type"],
|
|
243
|
+
"title": "IEvent",
|
|
244
|
+
"type": "object"
|
|
245
|
+
},
|
|
246
|
+
"OpenFrameEvent": {
|
|
247
|
+
"properties": {
|
|
248
|
+
"at": {
|
|
249
|
+
"title": "at",
|
|
250
|
+
"type": "number"
|
|
251
|
+
},
|
|
252
|
+
"frame": {
|
|
253
|
+
"title": "frame",
|
|
254
|
+
"type": "number"
|
|
255
|
+
},
|
|
256
|
+
"type": {
|
|
257
|
+
"const": "O",
|
|
258
|
+
"title": "type",
|
|
259
|
+
"type": "string"
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": ["at", "frame", "type"],
|
|
263
|
+
"title": "OpenFrameEvent",
|
|
264
|
+
"type": "object"
|
|
265
|
+
},
|
|
266
|
+
"SampledStack": {
|
|
267
|
+
"items": {
|
|
268
|
+
"type": "number"
|
|
269
|
+
},
|
|
270
|
+
"type": "array"
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"$ref": "#/definitions/FileFormat.File"
|
|
274
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
7
|
+
<title>speedscope</title>
|
|
8
|
+
<link rel="stylesheet" href="speedscope-GHPHNKXC.css">
|
|
9
|
+
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32-3EB2YCUY.png">
|
|
10
|
+
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16-VSI62OPJ.png">
|
|
11
|
+
<link rel="icon" type="image/x-icon" href="favicon-FOKUP5Y5.ico">
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<script src="speedscope-QZFMJ7VP.js"></script>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
Binary file
|