top | item 39339461

Orbit: C/C++ Performance Profiler

209 points| dosshell | 2 years ago |github.com

59 comments

order

elromulous|2 years ago

As a xoogler who's wanted to use this and invest in it, I'm curious about the state it's in. Google has been investing in perfetto, this is different, but has some redundancy. It would would be nice to know this isn't abandonware.

OlivierLi|2 years ago

Using some scripts/parsers to take DTrace/perf/Instruments/ETW data and transfer it to perfetto was one of the most exciting moments of my performance engineering career. It’s such a powerful thing compared to every single other workflow I’ve ever used.

It just shows contention in a way that so hard to see otherwise.

If this tool packages some of that in an easier to use package it’s going to be a great tool for some.

sjwhevvvvvsj|2 years ago

Looks like it may have been stadia related.

pzo|2 years ago

at least looks like they dropping support for windows

"Orbit's focus has shifted to the Linux version. Windows local profiling is currently only supported partially and major features, such as dynamic instrumentation, are not yet implemented. It is possible however to profile Linux executables from a Windows UI instance. For Windows local profiling, you can still use the released binaries, but please note that they are deprecated and mostly undocumented."

winrid|2 years ago

It looks like all the top contributors no longer work on it much, based on github's insights.

signa11|2 years ago

i don't really think there is _anything_ that comes even close to tracy https://github.com/wolfpld/tracy.

on top of this, given google's penchant for dumping projects aka abandonware, this would be an easy pass.

cmovq|2 years ago

What surprised me about Tracy was just how easy it was to include in a C++ project. Just compile and link a single .cpp file (TracyClient.cpp)

Veserv|2 years ago

Does tracy support automatic function entry/exit (FEE) traces (i.e. all functions are automatically instrumented with a start/end)? The documentation seems to indicate traces are all manual which is pretty inconvenient. There are very few cases where you even need manual instrumentation if you have FEE data from my experience.

zokier|2 years ago

What about vtune? I was under the impression that it is pretty much the state of art in profiling

sahlab|2 years ago

Tracy is amazing. Having just integrated it into a major project, it's leaps and bounds above what we were using previously.

nnevatie|2 years ago

Considering Stadia's demise, is orbit dead as well?

DeathArrow|2 years ago

> It supports native applications written in languages such as C, C++, Rust, or Go.

Seeing it supports Go, I wonder if it supports other AoT compiled languages with garbage collectors, like .NET.

eclectic29|2 years ago

Any googlers chime in? Is this any good? Or just a dump of one of their internal unused products?

Gupie|2 years ago

VTunes can tell you the average time that functions take to run but which tools can highlight functions that very occasionally run a lot slower than normal?

dataflow|2 years ago

At first glance - how is this different from VTune?

zokier|2 years ago

Its foss, vtune is proprietary.

Ono-Sendai|2 years ago

There's a bunch of really good C++ profilers already. My current favourite is Tracy: https://github.com/wolfpld/tracy

latenightcoding|2 years ago

Not if you are on macOS, the number of available profilers drops after every release. Same with leak detectors, valgrind doesnt work, sanitizers don't work anymore (even if you compile your own clang).

jonstewart|2 years ago

What’s the difference between this and libprofile in GPT? Just earlier in its transition to Google abandonware?

rvnx|2 years ago

According to the presentation video, it is a profiling tool used for Stadia Games ( https://www.youtube.com/watch?v=8V-EPBPGZPs ) that can adapt to Unity and Unreal Engine. Which seems to make sense as the original developer has experience developing on video games.

The main selling point of the tool is Dynamic instrumentation, which allows you to generate Flame charts without manual code annotation (you pick functions that you are interested into, and the profiler adds a hook to these functions in order to log the entry+exit time).

yb303|2 years ago

Why does it sound like a remake of FlameGraph?