Cleaning up your stuff

You have created your first Windows 8 app. It’s a nice game that enables users to take a video of themselves describing a word. Others have to guess; that way, they can earn points that enable them to create a longer video. One day you wake up and you suddenly realize that Microsoft chose your app as its app of the week. Your web server that’s running all the logic of the game is trembling under the user load because of the sudden popularity. Both memory and CPU pressure are a lot higher than you expected. You have some types that are qualified to be a value type but at the time of creating your app, you just used classes.

How can using value types when possible improve your performance? Or could it be that your performance will deteriorate more?
Why is implementing IDisposable important to reduce memory pressure? Is it always the best to call Dispose on an element as soon as you are done with it?
Should you implement a finalizer on all your types that implement IDisposable?
You have some items that are used a lot. Would it be wise to put them in a static field so you don’t have to re-create them each time?