You can analyze performance by capturing system traces, which also include rendering information. I usually use
https://ui.perfetto.dev/ to view trace reports.
First, find your app's process name. Then, focus on the main thread and render thread rows in the trace.
The main thread shows how long it takes to issue drawing commands to the renderer, it only schedules them. The actual rendering happens on the render thread.
This part is highly device-specific. Some devices provide detailed trace data, while others show very limited information. On some devices, you can adjust this behavior in Developer Settings.
In these trace sections, you can observe differences between drawing operations like brush gradients and custom shaders. To make trace analysis easier, you can add your own trace labels using the androidx.tracing library. Just wrap your code blocks with a trace label, and they'll appear clearly in the trace.