Skip to content

Performance profiling for WebAssembly #76316

Closed
0 of 1 issue completed
Closed
Feature
0 of 1 issue completed
@SteveSandersonMS

Description

@SteveSandersonMS

Net 10 goals - single threaded Event Pipe and Diagnostic server

Net 10 nice to have

  • include ds-router in the dev-server, so that the IPC channel is visible on the local machine
  • explore how .nettrace output could be used for PGO AOT in Mono
  • click thru symbols in the trace to C# code in VS
  • optimize sampling profiler
  • simplify browser <WasmProfilers>browser</WasmProfilers> and config.browserProfilerOptions
  • Timing-Allow-Origin in the devtools

Future goals

  • propagate from the WASM client to the server side open telemetry
  • integration with VS or VS code
  • make multi-threaded event pipe also work
  • annotate Mono AOT with event pipe events
    • FRAME_TYPE_IL_STATE
  • annotate AOT/Interp transitions
  • annotate JS interop with event pipe events
  • use stats about Interp of runtime libraries to bring more intrinsic methods to Interp
  • propagate event pipe events as performance.mark() and performance.measure()
  • propagate browser events as event pipe events
  • Add a way for JavaScript to push events to EventSources.
  • VS integration
  • Refactor runtime startup to allow the diagnostic server to async pause the browser thread.

Non-goals

  • (debugging of) full memory dump - the layout of WASM linear memory is significantly different from other OSs. Also it doesn't capture WASM stack trace, just shadow stack.
  • DS/EP and Mono profilers at the same time
  • Anything based on DiagnosticCounter like RuntimeEventSource and CounterGroup, keep UnsupportedOSPlatform("browser")

Sub-issues

Metadata

Metadata

Assignees

Labels

Priority:0Work that we can't release withoutarch-wasmWebAssembly architecturearea-Diagnostics-monoenhancementProduct code improvement that does NOT require public API changes/additionstrackingThis issue is tracking the completion of other related issues.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions