Recently, I landed some improvements to IPC profiling support for Firefox:
we're now able to collect timings for each "phase" of an IPC message as it
travels from the sender to its recipient. Now, rather than just recording
the start and end time, we also record when we begin/end sending bytes on
the sender's IO thread, and when we've finished receiving bytes on the
recipient's IO thread. This should help people looking to understand what's
going on with our multiprocessing, since it's now clearer what the
underlying cause of IPC slowness is.

To collect IPC messages with full timings, you'll need to enable IPC
message support in the profiler (about:profiler -> Features -> IPC
Messages), as well as explicitly profiling the IPC IO threads by adding
`Gecko_IOThread` and `Chrome_ChildThread` to the list of threads to be
profiled.

If you'd like more details, screenshots, etc, this feature is documented
here: <https://profiler.firefox.com/docs/#/./ipc-messages>.

One obvious limitation of this feature at the moment is that it can be
difficult to evaluate the *overall* IPC message performance. In the future,
I plan to provide a better high-level visualization to make this easier. As
always, if you have questions, suggestions, etc, feel free to send me a
message!

- Jim
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to