Why an empty project jumping 20 - 120 fps on android?

I have checked and confirmed that other apps are running 120 fps consistently. How is unity not able to even keep a solid 30 on my gallaxy s4? I really need a consistent >240 fps before I can begin coding my project. Is there really anything I can do besides finding another game engine?

Firstly, some comments:

a.) What value is there in knowing the FPS of an empty project? 240FPS strikes me as a ridiculously high and probably unachievable target anyway.

b.) How are you measuring FPS of other apps?

c.) What other comparable 3D game engines are you considering that would offer better mobile performance? I for one would certainly love to know!

In terms of what you can do in Unity, try setting Application.targetFrameRate and edit->project settings->quality->vsync count. Also monitor the profiler for WaitForTargetFPS and other counters to understand what’s happening.

Ok… I got something working. I helps to know that Update() is only based on rendering frames. Since Update() is completely bogged down on mobiles anyway, I decided to limit it to 24 fps max. I then called a separate function from Update() ten times. This now executes my function 10 times every 1/24s which gives us 240fps. However, this makes a very dirty fps where you execute 10 times really fast, wait for Update again and then update another 10 times. Since I am fixing the fps to 240, I will have to have each frame wait for the clock.

So, I guess the thing to remember about mobile development in Unity is that the rendering pipeline is always going to be mind-blowingly slow. Find your way around it if you need more fps.