I've been working for a month to redesign my game to improve it's frame rate on Android devices. I've only tested it in web preview so far but it took a lot of work to get it to run at around 30 fps on a Samsung phone with an ARM quad-core and 1 Gb of RAM, with some levels going below. Currently it uses around 160 objects and less than 20 Mb RAM (depends on screen size) in level. So I was thinking I finally got it to run decently.
However when I tested it on the devices of various friends I quickly became concerned. On a Lenovo tablet with the same specs as my phone it ran really slow, below 10 fps, exactly the same on a Huawei phone that also had similar specs, and absolutely horrible on a HTC octo-core with 2GB of RAM, the frame counter dropping below 5. I was almost loosing hope when I decided to try disabling WebGL in the game project. You can Imagine my shock when I saw my game was now running at 50-60 fps even in the more demanding levels on all 4 devices, granted I need to use some work-arounds to replace all my WebGL-dependent effects. Personally I'm really happy to just drop WebGL and use the work-arounds but since WebGL is supposed to be this complete powerhouse I'm wondering if maybe I did something wrong or missed something.
Is there anything I need to know about using WebGL? Should I avoid text and use sprite fonts instead or something like that? Does anyone have any idea why it's severely slowing my app? I'd really like to make it work correctly instead of just dropping it. Any help is appreciated.