@@ -107,8 +107,13 @@ Memory samples are not enabled by default, but can be enabled by [`with_native_m
107107
108108### Non-standard runtime configurations
109109
110- The profiler always profiles a process-at-once. If a program has multiple Tokio (or non-Tokio, or non-Rust)
111- runtimes, it will profile all of them without problems.
110+ The profiler always profiles an entire process. If a program has multiple Tokio (or non-Tokio, or non-Rust)
111+ runtimes, it will profile all of them mostly without problems.
112+
113+ Even mixing native code and JVM in the same process works, no matter whether
114+ async-profiler is started from Rust or Java, though there are occasionally bugs
115+ in this area - if you are mixing native code and JVM and encountering weird
116+ problems, you should [ report an issue to async-profiler] .
112117
113118The most-often used [ ` Profiler::spawn ` ] and [ ` Profiler::spawn_controllable ` ] functions assume that they are run within
114119a Tokio runtime. The S3 reporter performs AWS SDK calls within that runtime, and therefore it
@@ -129,6 +134,7 @@ In all of these cases, the [pollcatch](#pollcatch) hooks should be enabled on th
129134runtime where you * intend to be catching long polls on* - presumably your data-plane runtime. They do not
130135introduce much overhead or unpredictable latency.
131136
137+ [ report an issue to async-profiler ] : https://github.com/async-profiler/async-profiler/issues
132138[ `Profiler::spawn` ] : https://docs.rs/async-profiler-agent/0.1/async_profiler_agent/profiler/struct.Profiler.html#method.spawn
133139[ `Profiler::spawn_controllable` ] : https://docs.rs/async-profiler-agent/0.1/async_profiler_agent/profiler/struct.Profiler.html#method.spawn_controllable
134140[ `Profiler::spawn_thread` ] : https://docs.rs/async-profiler-agent/0.1/async_profiler_agent/profiler/struct.Profiler.html#method.spawn_thread
0 commit comments