Simply create a new scene, choose GameObject / UI / Button to create a button of uGUI. Then choose Windows / Profiler, turn on Record. On Overview window, click the title of column named 'GC Alloc' ( for sorting by GC Alloc ) Play your scene. Look at the Overview window of profiler, you will see the first row named GameView.GetMainGameViewRenderRect() which alloc 32 Bytes every frames. But it appears only on the Editor, not on Players (like iOS, Android). Others alloc 0 Byte. So it's ok. But try to click the button. At the time you click, a row named BehaviourUpdate() appears and allocs 1.1KB. Then try to hold down the button, 1.1KB alloc every frames! On iOS, it is 160 Bytes every frames instead of 1.1KB. I wonder that if I hold down the button for a while, until the heap full, the 'Garbage Collector' may appears, clean heap, and drop the fps? Thank you.