tracy icon indicating copy to clipboard operation
tracy copied to clipboard

Comparison with palanteer

Open eyalroz opened this issue 2 years ago • 4 comments

It would be useful to potential new users if there was a page (on the repo itself? in a Wiki here on GitHub?) Comparing and contrasting tracey with Palanteer.

eyalroz avatar Jul 30 '21 09:07 eyalroz

Probably, but someone would have to do this. I no longer need to use other profilers at this moment, so I don't have much knowledge what they do, and I wouldn't be able to be objective anyway.

Palanteer's author wrote a short comparison at https://www.reddit.com/r/cpp/comments/o47api/palanteer_a_new_instrumentation_based_c_profiler/h2g79wp/?context=3

Indeed, Tracy and RAD Telemetry share some features with it.However, some aspects are unique in Palanteer, in particular the remote Python scripting reacting to recorded data for testing or performance evaluation.

The key differences with Tracy (as Telemetry seems great but is not open source nor free) are:

  • the recording is not fully stored in memory as in Tracy, you can visualize huge records (up to 2 billions of events) on a standard laptop.
  • instrumentation can be enabled per "group" (compile flag), a bit like a generalization of the NDEBUG for assertions (BTW, enhanced assertions are proposed too).
  • the viewer is fully interactive, everything reacts in all windows, using docking.
  • some views are not present in Tracy (flame graph, view as a hierarchical text log, memory timeline per thread with display of each individual allocated blocks...)
  • it is possible to remote control your program by calling CLIs (Command Line Interface) and observe the resulting events (events are the atomic, typed, logged data).By scripting in Python such control, remote performance analysis or integration tests are possible.
  • Profiles also the Python programs (unmodified or instrumented)
  • Can save a record directly in a file without connection. And imported later in the viewer.

On the other side, Tracy owns some unique features too (not exhaustive):

  • GPU monitoring
  • sampling profiler
  • code dissassembly
  • screen snapshot
  • Support of more platform (Android, consoles...)

In one sentence, Tracy targets game development and is really full featured; Palanteer targets generic development (game included but in a less specific way), from the debugging aspect up to the test via optimization. With a strong highlight on the user friendliness (I hope)

I don't necessarily agree with everything here (e.g. Tracy is used in many non-game-related environments, like an experiment at CERN), but that's something to start with.

wolfpld avatar Jul 30 '21 09:07 wolfpld

  • some views are not present in Tracy (flame graph, [...], memory timeline per thread with display of each individual allocated blocks

True those sound like nice to have. Also threads unblocking others could use arrows like this: https://superluminal.eu/wp-content/uploads/2019/12/Homepage_Multithreading.png

Trass3r avatar Nov 15 '21 01:11 Trass3r