I have a single canvas, in which lives a global UI image background, and 4 frame objects. In each frame object, there lives up to hundreds of UI images and texts. No buttons and no colliders exist in a frame object.
During the game, scripts lerp the frames by setting "frame.transform.localPosition". When all 4 frame objects are stationary, the frame rate is a constant 60fps. When a frame is in motion, the fps falls to about 33 fps and pops back up as soon as the movement is done.
The profiler suggests the canvas is doing a huge amount of work. What is going on? Are UI elements in a canvas supposed to be static?
Picture of my scene: http://i.imgur.com/o3pfAt3.png