It'd be great to have a matrix of things to consider when trying to get the best performance out of Impact and Ejecta. I'm working on a game and running into some framerate problems on Ejecta, and I'm dialing all the knobs to see which make a difference. I'd love to have a list of knobs worth dialing to save time and headaches.

Here's some of my notes. I'd love to get these nailed down to definitive YES or NO or MAYBE. I know that "it depends," but surely there's some reasonable advice to be had.

Things that will substantially effect framerate in Ejecta:

(THESE MAY BE COMPLETELY WRONG! THIS LIST IS FOR FEEDBACK.)

Map dimensions: no
Number of map layers: yes
Number of tiles in tileset: maybe
Tile size: maybe, larger tiles seem smoother
Canvas dimensions and scale: maybe, 1x seems smoother than 25% size canvas scaled up 4x
Canvas scaleMode: no
Number of entities on screen: yes
Number of entities off screen: maybe
getDrawPos snap to hardware position: yes, seems to introduce a blip in smoothness on a regular interval

I think where I'm most confused, and most want to do more performance testing experiments, is around an Ejecta game where the canvas size = device screen size vs an Ejecta game where the canvas is small and being scaled up 4x to fill the device screen. I'm doing a pixel art game, so I don't need high res textures. I would have thought that scaling the entire game up 4x would be a very inexpensive operation, but it does not seem to be the case?

It could be that something else is going on, obviously.