firefox-devtools / profiler

Firefox Profiler — Web app for Firefox performance analysis
https://profiler.firefox.com
Mozilla Public License 2.0
1.14k stars 374 forks source link

Implement a unified / interleaved view of multiple profiles #2289

Open squarewave opened 4 years ago

squarewave commented 4 years ago

We have profile diffing as an idea, but here I'm referring to the opposite. Essentially, interleaving the samples from two or more profiles (attempting to match process by process) to create a super-profile.

The use case here is for analyzing talos profiles. I.e., profiles of very similar runs which should roughly line up, allowing us to virtually increase the sampling rate without actually incurring extra overhead. This would be particularly useful for diffing N talos runs with N other talos runs when the percentage performance difference is low but consistent.

┆Issue is synchronized with this Jira Task

julienw commented 4 years ago

The idea is interesting and maybe not that hard given the current architecture in place.

gregtatum commented 3 years ago

I think this is a good candidate for the performance workflow work. The way I see this working is that each folder in a zip view would have a "view merged profiles" button.

image

The profiles would then be merged into similar threads, with their times properly offset so that each profile is visible moving left to right in the profile. We should add markers to the profile to differentiate each profile run.

A good example profile is attached.

talos - profile_ts_paint_flex.zip

gregtatum commented 3 years ago

Here is a talos run that's currently available via try: https://profiler.firefox.com/from-url/https%3A%2F%2Ffirefox-ci-tc.services.mozilla.com%2Fapi%2Fqueue%2Fv1%2Ftask%2FHROGCn1VTzayD33Bd0b4eA%2Fruns%2F0%2Fartifacts%2Fpublic%2Ftest_info%2Fprofile_damp.zip/calltree/?v=5