Overhead
Palette is designed to be as lightweight as possible. All performance overhead opt-in.
CPU
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.
Network
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.
Bundle Size
Palette has a lightweight footprint. The browser client is <6kb gzipped and minified, which is 82% smaller than react-dom and 89% smaller than Sentry.