[wasm-ep] Tracking #69268
Labels
arch-wasm
WebAssembly architecture
area-Tracing-mono
enhancement
Product code improvement that does NOT require public API changes/additions
tracking
This issue is tracking the completion of other related issues.
Milestone
Basics:
This adds support for using the JS console to create an EventPipe session with the default providers and to collect a trace in-memory to the Emscripten VFS and to egress it to a JavaScript Blob object (which can then be downloaded).
Build and SDKs
Save runtime artifacts from the EventPIpe build in anwe ended up with separate runtime packs selected usingep
subfolder in the runtime pack (in addition tomt
and plain) (variant of [wasm-mt] place multi-threaded wasm build into separate artifacts folders #68506)MonoWasmBuildVariant=perftrace
orMonoWasmBuildVariant=multithread
in Add support for building WASM variants alongside single-threaded to the build system #71054ep
variant of the runtime artifacts The browser-wasm SDK should automatically reference the threading/perf-tracing ref assemblies #72872Profiled AOT
The goal is to make it possible to add "something" to a webassembly project in order to cause it to collect a nettrace file that can be fed to the
dotnet-pgo
tool to produce an.mibc
file which can be consumed by the Mono AOT compiler.Sample profiling
The goal is to make it possible to collect a meaningful profile of the main browser thread while it is running managed code
Mixed C#/JS perf Integration
Streaming EventPipe sessions
The goal is to make it possible to create a WebSocket connection back to the dev server to send live streaming EventPipe session data to the user.
The goal is to make it possible to start and stop EventPipe sessions using a
dotnet-dsrouter
anddotnet-counters
/dotnet-trace
/etc combo when running a dev server.dotnet-dsrouter server-websocket
is https://github.com/lambdageek/diagnostics/tree/wasm-server)Break up runtime startup such that it can return to the JS event loop after enough initialization is done so that EventPipe sessions can be created (but not yet streaming). Then the diagnostic server can receive commands to create sessions, and the runtime is paused but the browser UI is responsive. (Maybe we can pop up a modal view with the
dotnet-dsrouter
command and disable UI interactions)Issues
The text was updated successfully, but these errors were encountered: