Is multiple canvases for non changing ui elements better for performance?

Kind of a noob question. My game is 100% in unity’s UI but it runs hot sometimes on mobile devices. I have only 1 canvas. Should I break up my UI into multiple canvases for elements that have no animation? Will that increase performance or am I better off with just 1?

If anything inside a Canvas is changing, like changing the position of an UI element, or changing some text, the Canvas mesh has to be rebuilt. Depending on the complexity of your Canvas, this can result in 65535 vertices that have to be rebuilt per frame.
You can seperate you UI into several Canvases, which i totally recommend, to minimize what needs to be rebuilt.

Regarding the device running hot: This can totally be the result of rendering 60fps. I had phones that ran hot with 60fps and not a lot to render at all. Try setting the Application.targetFrameRate to 30.0f. If your game is UI only, 30 fps should be fine i assume.

I’m not sure I completely understand what you’re asking here but I don’t think it would make any difference to performance if you split your UI over multiple canvases. Normally I will only split my UI into multiple canvases because it made sense to organise them that way.

If you have lots of transparent ui pieces rendered over the top of each other that could potentially cause performance problems on mobile. But having multiple ui objects on one canvas I dont think so.

Looks like I’m wrong about this, but I would confirm that this is causing your performance issues with the profiler first, as there are other reasons your UI may be performing badly. I think splitting your canvases as a hard and fast rule would be premature optimisation.

Have you seen: Optimizing Unity UI - Unity Learn