Enable jitdump profiling support by default (#1310)

* Enable jitdump profiling support by default

This the result of some of the investigation I was doing for #1017. I've
done a number of refactorings here which culminated in a number of
changes that all amount to what I think should result in jitdump support being
enabled by default:

* Pass in a list of finished functions instead of just a range to
  ensure that we're emitting jit dump data for a specific module rather
  than a whole `CodeMemory` which may have other modules.
* Define `ProfilingStrategy` in the `wasmtime` crate to have everything
  locally-defined
* Add support to the C API to enable profiling
* Documentation added for profiling with jitdump to the book
* Split out supported/unsupported files in `jitdump.rs` to avoid having
  lots of `#[cfg]`.
* Make dependencies optional that are only used for `jitdump`.
* Move initialization up-front to `JitDumpAgent::new()` instead of
  deferring it to the first module.
* Pass around `Arc<dyn ProfilingAgent>` instead of
  `Option<Arc<Mutex<Box<dyn ProfilingAgent>>>>`

The `jitdump` Cargo feature is now enabled by default which means that
our published binaries, C API artifacts, and crates will support
profiling at runtime by default. The support I don't think is fully
fleshed out and working but I think it's probably in a good enough spot
we can get users playing around with it!
This commit is contained in:
Alex Crichton
2020-03-20 11:44:51 -05:00
committed by GitHub
parent 0a30fdf85f
commit 3b7cb6ee64
27 changed files with 488 additions and 325 deletions

6
Cargo.lock generated
View File

@@ -2433,7 +2433,6 @@ dependencies = [
"wasmtime-environ",
"wasmtime-jit",
"wasmtime-obj",
"wasmtime-profiling",
"wasmtime-runtime",
"wasmtime-wasi",
"wasmtime-wast",
@@ -2555,6 +2554,8 @@ dependencies = [
name = "wasmtime-profiling"
version = "0.12.0"
dependencies = [
"anyhow",
"cfg-if",
"gimli",
"goblin",
"lazy_static",
@@ -2563,6 +2564,8 @@ dependencies = [
"scroll",
"serde",
"target-lexicon",
"wasmtime-environ",
"wasmtime-runtime",
]
[[package]]
@@ -2592,7 +2595,6 @@ dependencies = [
"region",
"thiserror",
"wasmtime-environ",
"wasmtime-profiling",
"winapi",
]