http://simulationcorner.net/index.php?page=comanche
1. No fullscreen
2. I update the screen only if a key is pressed.(No rain, that has to be rendered all the time)
3. I don't use any costly canvas functions. I render everything myself in a pixelbuffer.
4. Typed arrays
I calculate as close as the machine can but with a window.setTimeout(Update, 0); in order to be responsive.
http://simulationcorner.net/index.php?page=comanche