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:
@@ -11,17 +11,21 @@ readme = "README.md"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
libc = { version = "0.2.60", default-features = false }
|
||||
goblin = "0.1.3"
|
||||
serde = { version = "1.0.99", features = ["derive"] }
|
||||
scroll = "0.10.1"
|
||||
gimli = "0.20.0"
|
||||
object = "0.17.0"
|
||||
target-lexicon = "0.10.0"
|
||||
anyhow = "1.0"
|
||||
cfg-if = "0.1"
|
||||
gimli = { version = "0.20.0", optional = true }
|
||||
goblin = { version = "0.1.3", optional = true }
|
||||
lazy_static = "1.4"
|
||||
libc = { version = "0.2.60", default-features = false }
|
||||
object = { version = "0.17.0", optional = true }
|
||||
scroll = { version = "0.10.1", optional = true }
|
||||
serde = { version = "1.0.99", features = ["derive"] }
|
||||
target-lexicon = "0.10.0"
|
||||
wasmtime-environ = { path = "../environ", version = "0.12.0" }
|
||||
wasmtime-runtime = { path = "../runtime", version = "0.12.0" }
|
||||
|
||||
[badges]
|
||||
maintenance = { status = "actively-developed" }
|
||||
|
||||
[features]
|
||||
jitdump = []
|
||||
jitdump = ['goblin', 'object', 'scroll', 'gimli']
|
||||
|
||||
Reference in New Issue
Block a user