Low CPU/memory overhead

High portability (Windows, Linux, OSX)

Multi-language support

Easy integration (single header/source file)

Extensibility (user-defined data types)

Multiple output data formats (FlameGraph, Trace Event Format)

Event streaming to file or to network sockets