bencherdev / bencher

🐰 Bencher - Continuous Benchmarking
https://bencher.dev
Other
452 stars 21 forks source link

Add performance profiling and analysis UI #65

Open epompeii opened 1 year ago

epompeii commented 1 year ago

https://profiler.firefox.com https://api.profiler.firefox.com

https://github.com/firefox-devtools/profiler https://github.com/firefox-devtools/profiler-server

epompeii commented 1 year ago

@brainstorm this may be a good way to finally close out https://github.com/umccr/htsget-rs/pull/137.

brainstorm commented 1 year ago

Is DHAT output compatible with the firefox profiler UI? They seem to have their own viz according to docs (see https://nnethercote.github.io/dh_view/dh_view.html), maybe I'm missing sth?

epompeii commented 1 year ago

I just went ahead and removed DHAT from the title, as honestly I'm not versed enough in profiler formats to know if that's what we actually want long term. I just know that Google Trace Event format doesn't support all the things in Rust that it does for Go, so I thought maybe DHAT would be the way to go but with a very big 🤷🏽‍♂️.

Firefox Profiler does support DHAT though (bottom of https://profiler.firefox.com):

The ⁨Firefox Profiler⁩ can also import profiles from other profilers, such as Linux perf, Android SimplePerf, the Chrome performance panel, Android Studio, or any file using the dhat format or Google’s Trace Event Format. Learn how to write your own importer.

epompeii commented 5 months ago

For Bare Metal Runners (https://github.com/bencherdev/bencher/issues/199) Consideration using Perfetto: https://github.com/google/perfetto It is written in C++ and will have a more consistent overhead than something written in Go like Parca: https://github.com/parca-dev/parca

brainstorm commented 5 months ago

Came across this recently, no idea if it's good or not: https://github.com/deepflowio/deepflow

epompeii commented 3 months ago

Some non-eBPF based profilers that may be worth considering:

brainstorm commented 3 months ago

Another one, from Intel: https://www.phoronix.com/news/Intel-Continuous-Profiler-OSS (https://github.com/Granulate/gprofiler-performance-studio)

brainstorm commented 2 months ago

https://github.com/elastic/otel-profiling-agent

epompeii commented 6 days ago

This will be interesting to watch: https://github.com/open-telemetry/community/issues/1918