Palanteer logo

Palanteer

Lean, high-resolution instrumentation for C++ and Python applications

Palanteer provides lightweight, nanosecond-resolution logging and automatic instrumentation for C++ and Python, enabling real-time event collection, visual analysis, and remote scripting for testing and performance monitoring.

Overview

Overview

Palanteer is a lean instrumentation suite for C++ and Python applications. By embedding a single‑header library in C++ and importing a Python module, developers gain nanosecond‑resolution event logging with an overhead of roughly 25 ns per event. The system automatically captures function entry/exit, memory allocations, exceptions, garbage‑collection cycles and coroutine activity, while also allowing manual logging of custom data.

Capabilities

Recorded events can be streamed to a Python script for remote control, configuration via CLI handlers, and real‑time visualisation through hierarchical logs, timelines, histograms and flame graphs. The C++ side offers compile‑time string hashing, selective instrumentation groups and optional automatic instrumentation on Linux GCC. Python instrumentation works out‑of‑the‑box and supports multithreading, asyncio and gevent, handling up to eight concurrent streams. This combination makes Palanteer suitable for performance profiling, automated testing, and monitoring of complex, concurrent software.

Highlights

Nanosecond-resolution event logging with ~25 ns overhead
Automatic instrumentation for Python functions, memory, exceptions and coroutines
Single-header, cross-platform C++ library with compile-time string hashing and stripping
Interactive visual tools: timelines, flame graphs, histograms, and hierarchical logs

Pros

  • Very low runtime overhead
  • Supports both C++ and Python out of the box
  • Rich visual analysis suite
  • Remote control and scripting via Python

Considerations

  • Automatic C++ instrumentation limited to Linux GCC
  • Manual integration required for non‑GCC compilers
  • Python instrumentation may add overhead in high‑frequency code
  • Visualization tools depend on external viewer or server

Managed products teams compare with

When teams consider Palanteer, these hosted platforms usually appear on the same shortlist.

Blackfire Continuous Profiler logo

Blackfire Continuous Profiler

Low-overhead continuous profiling for app performance optimization.

Datadog Continuous Profiler logo

Datadog Continuous Profiler

Always-on code profiling to cut latency and cloud costs.

Elastic Universal Profiling logo

Elastic Universal Profiling

Whole-system, always-on profiling with no instrumentation.

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Performance engineers needing precise timing data
  • QA teams building automated test harnesses
  • Developers of multithreaded or async applications
  • Projects that value a single-header C++ solution

Not ideal when

  • Environments without GCC on Linux for automatic C++ instrumentation
  • Applications where any added overhead is unacceptable
  • Teams requiring a fully integrated GUI without scripting
  • Projects that need built-in support for languages beyond C++/Python

How teams use it

Real-time performance profiling

Capture nanosecond timestamps of function calls and memory usage to identify bottlenecks.

Automated regression testing

Scripted CLI commands adjust program parameters and verify event streams across runs.

Concurrent system debugging

Log lock wait times and context switches across threads to detect deadlocks.

Async coroutine monitoring

Track entry/exit and garbage‑collection events of asyncio tasks for resource analysis.

Tech snapshot

C++90%
Python8%
C1%
CMake1%

Tags

c-plus-plusembeddedcppprofileroptimizationheader-onlyperformancepythonmemory-profilerprofilingloggingdeveloper-tools

Frequently asked questions

Does Palanteer support Windows?

The C++ header is cross‑platform, but automatic instrumentation is only available on Linux with GCC.

How is the overhead measured?

Typical cost is about 25 ns per event, yielding up to 5 M events/s on a standard x64 machine.

Do I need to modify my code to use Palanteer?

For Python, most instrumentation is automatic; C++ requires including the header and optional macros, with compile‑time selection of instrumentation groups.

Can I visualize data without writing Python scripts?

Palanteer provides visual tools such as timelines, flame graphs and histograms that can be launched from recorded log files.

Is the library thread‑safe?

Yes, it supports multithreaded programs and can record up to eight concurrent streams.

Project at a glance

Stable
Stars
2,202
Watchers
2,202
Forks
96
Repo age4 years old
Last commit8 months ago
Primary languageC++

Last synced yesterday