Palette is designed to be as lightweight as possible. All performance overhead opt-in.
Palette's overhead across all end user sessions is equal to the profiler overhead (10%) multiplied by the percentage of users profiled.
As an example, your p95 typing latency might be 100ms. When enabling profiling on 3% of sessions, the latency will increase by 10% for 3% of users, resulting in a p95 of 100.3ms.
Palette compresses network payloads asynchronously, off the main thread. Gzip compression is used in browsers via the CompressionStream API and Brotli in Node and Electron apps. All payloads are sent when the user is idle or the user has backgrounded the browser tab or electron app.