In most cases, I like that Swift Profile Recorder separates everything by thread. But for some tooling this isn't helpful.
For example, when running the demo
swipr-mini-demo --tsp true --threads 10 --output /tmp/raw.swipr
and then making a FlameGraph from that
.build/release/swipr-sample-conv /tmp/raw.swipr | ~/extsrc/FlameGraph/stackcollapse-perf.pl | swift demangle --simplified | ~/extsrc/FlameGraph/flamegraph.pl > /tmp/out.svg && open -a Safari /tmp/out.svg
you get

which doesn't look very pretty...
On the other hand, if we add a sed -r 's/^[^ ]+-T[0-9]+/everything/g' to make all the threads appear in just one thread called "everything"
.build/release/swipr-sample-conv /tmp/raw.swipr | sed -r 's/^[^ ]*-T[0-9]+/everything/g' | ~/extsrc/FlameGraph/stackcollapse-perf.pl | swift demangle --simplified | ~/extsrc/FlameGraph/flamegraph.pl > /tmp/out.svg && open -a Safari /tmp/out.svg
the result is much prettier

But instead of forcing our users to come up with a pretty difficult sed command, we could just offer curl -sd {"treadNames": false, ...} or similar
In most cases, I like that Swift Profile Recorder separates everything by thread. But for some tooling this isn't helpful.
For example, when running the demo
and then making a FlameGraph from that
you get
which doesn't look very pretty...
On the other hand, if we add a
sed -r 's/^[^ ]+-T[0-9]+/everything/g'to make all the threads appear in just one thread called "everything"the result is much prettier
But instead of forcing our users to come up with a pretty difficult
sedcommand, we could just offercurl -sd {"treadNames": false, ...}or similar