Rayon seems to work recursively and it creates very long and chaotic stack traces. (rayon_core::job
+ rayon_core::join
+ catch_unwind
) × hundreds of levels deep.
I'm trying to profile my Rayon-heavy code (using Instruments.app on macOS). It's oriented towards drilling down into heaviest functions, based on stack traces. However when rayon is used the function calls are spread all over the stack traces at various depths, wherever Rayon found opportunity to run more work, so all the trace data is mixed up. "Invert Call Tree" option helps a bit, but I prefer the top-down view.
Is there a mode/setting/tool for Rayon that makes it run in a more "boring" way, e.g. unwinding stacks to the top of a thread instead of jumping deeper? (some performance loss from this is OK)