Project DescriptionASP.NET sites after a long period of inactivity, the site comes up very slowly during the first access. However, subsequent accesses, by same or other users, are fast.
More than people know that is an IIS setting issue (goes to sleep!). However, the slowness is not IIS.
The first request to an ASP.NET application is slow. The reason you see this repeatedly is because IIS (which I assume you are using) will idle timeout when the configured time is reached If you don't want this behavior, and you do not need IIS to shut down the application pool, you can disable this.
But there is nothing in IIS you can do to solve the actual problem that First request to an ASP.NET application is slow. SpSiteWakeUp is an opensource tool allow wake up your SharePoint sites and sub site. You can use
Windows Service version to
automate this progress.
Not:
This application works on Sharepoint Server.Console ModeYou can download console model version and use direct this tool by manually.
Windows Service ModelYou can download windows Service setup and install it your Sharepoint enviroment When the installation complate setup ask you a username and password to use connect your sharepoint sites. Place insert an administrative privilege user.
Windows Service InstallationWhen you run to setup application setup welcome screen appears

Click next and chose instalation destination folder. Clik next nad next. when installation complate setup ask you a username and password. This user uses to connect your sharepoint sites.

Finally
SpsiteWakeUp windows servis instalation is complate. Go to windows services and
start SpsiteWakeUp Service. Notice your Spwakeup service call all SP site and their subsite first time. And this operation complate service works 20 secons later. And every start pariod you can see a application log on event viewer as "SP Site Wake Up Stard period.".

More info :
http://www.kemalkaradag.com/post/2009/12/30/SpSiteWakeUp.aspx