You need to follow below points:
1) Disable any unused modules
2) Enable magento caching
3) Disable magento log
4) Combine external js/CSS in one file
5) MySql query caching
6) Image optimization
7) Enable Gzip compression
Megento Solutions is a place where you can get answers to you questions about magento. For beginner its a best place to start with.
You need to follow below points:
1) Disable any unused modules
2) Enable magento caching
3) Disable magento log
4) Combine external js/CSS in one file
5) MySql query caching
6) Image optimization
7) Enable Gzip compression
The main difference is that Mage::getSingleton() does not create new object if the object for same class is already created.
But Mage::getModel() creates new objects for the class everytime when it is called.