1 # Perfetto benchmarks 2 3 4 *** note 5 **This doc is WIP**, stay tuned. 6 <!-- TODO(primiano): Summarize results of perfetto_benchmarks --> 7 *** 8 9 This doc should show the charts of `perfetto_benchmarks`, showing cpu usage and 10 tracing bandwidth for both writing (producer->service) and reading 11 (service->file / service->consumer). 12 13 In two modes: 14 - Measure peak tracing bandwidth saturating the cpu: the producer(s) write as 15 much data as they can, reaching 100% cpu usage. 16 - Measure CPU overhead vs constant bandwidth: the producer(s) writes data at a 17 pre-defined rate. 18 19 Tweaking the various parameters, such as: 20 - Number of writers 21 - Size of the shared memory buffer 22 - Size of each TracePacket. 23 24 **TL;DR:** 25 Peak producer-to-service tracing bandwidth: 26 * Linux desktop: ~1.3 GB/s 27 * Android Pixel: ~1 GB/s 28 29 Producer-to-service CPU overhead when writing ~3 MB/s: 0.01 - 0.03 30 (0.01 := 1% cpu time of one core) 31 32 CPU overhead for translating ftrace raw pipe into protobuf: 33 * Android Pixel: 0.00-0.01 when idle. 34 * Android Pixel: 0.02-0.04 with 8 cores @ 8.0 CPU usage (raytracer). 35 * Linux desktop: TBD 36