SharePoint Best Practices Posts-Day 7 of 10. Improving your SharePoint Performance

April 16, 2009 by · Leave a Comment
Filed under: Best Practices Posts, SharePoint 
Guest post from Darren White- SQL/SharePoint Developer

One of the sessions that I attended at the Best Practices Conference was titled ‘Go Live! Launching your MOSS Publishing Site’. It went a long way to addressing one of the biggest problems with a large SharePoint setup, performance. One of the biggest challenges surrounds keeping the load time of your pages to a minimum so the end users are not kept waiting. To find out how big your improvements will be you can use a tool called Fiddler. Although Fiddler doesn’t show you how long each page takes to load we can see how big each element on the page is and therefore look at ways of reducing load time.

Fiddler- Performance Analysis Tool for SharePoint

Fiddler- Performance Analysis Tool for SharePoint

One way to improve performance is to reduce traffic between the server and the client. This can be achieved by putting all your images in one file and using the css properties- ‘clip’, ‘left’ and ‘top’ to only show the portion of the image you need. The ‘clip’ property is used to only show the section of the image, the size of the orginal image. You use the ‘left’ and ‘top’ tag to move the portion of the image you wish to show to (0px, 0px). So if the section of the image you wish to use is 50px across and 20px down the ‘left’ and ‘top’ properties would be ‘-50px’ and ‘-20px’ respectively. There is also a tool called RPO (Runtine Page Optimizer) that does this automatically. By putting all images into one image file the number of request from the browser for images to the server reduces. So if you have 20 images there is now 19 less request per page request. Although this might not sound much if you have 1,000 user in a school this would reduce requests by 19,000.

Another way to improve performance is to use IIS’s built-in compression tool. There are 10 levels of compression you can use, however it is highly recommend you don’t use the top level compression as your server CPU utilization will be hammered constantly. In IIS 7 you can use dynamic compression which can be turned on and off based on CPU utilization. An example of this working is on a major SharePoint file (core.js). On a fresh install this file is 24% of the page but by changing the compression setting you compress this file from 78kb to 56kb which is a 26% speed improvement.

A third way to improve performance is to using CSS-based page layouts. CSS-based page layouts are pages that use ‘div’ tags and css to position them. Why would you want to use CSS-based page layouts over traditional table-based page layouts? By using CSS-based page layouts you can improve performance between 28 – 71%. This is not a practical solution unless you are using custom master pages and/or have time to convert your existing pages.