So I decided to spend some time on the problem and engaged our brilliant technical support into this little project.
For some reason my local results were drastically different from what tech support reported. Most likely configuration-related. I was getting about 45 seconds for the application startup after IISRESET. I noticed that more than half of this time was spent something non-Sitecore related since the log was showing up only after about 25 seconds. Weird.
There are some interesting findings and the numbers I got on my side may not be 100% accurate, but that was not the goal of this exercise. I wanted to find quick and safe ways to remove/disable something that would not affect the development environment.
While monitoring the activity of the w3wp process using Process Monitor, I’ve noticed a lot of checks going against VeriSign service for assembly signature verification. The calls as you can imagine can slow down the startup quite a bit.
It turned out that introducing the following setting in machine.config disables this process.
<runtime> <generatePublisherEvidence enabled="false"/> </runtime>This single change helped me see the log file created much faster and the total time was decreased to 6-7 seconds total, only 4-5 of them seemed to be Sitecore-related!
It is important to remember that the location of the machine.config file depends on your platform. For 32-bit it can be found here: C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
For 64-bit here: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
Another thing to try is to disable Performance Counters in web.config as I’ve seen a lot of activity around registry and performance counters.
<setting name="Counters.Enabled" value="false" />Now this helped me gain another .5 second for the initial startup (before Sitecore log got created).
My local tests on a dual core laptop indicated that Sitecore desktop (http://localhost/sitecore/shell/default.aspx) starts up in about 6 seconds after IISRESET while the front-end (http://localhost/) in approximately 3-4 seconds!
- My tests appear to be specific to my environment, and did not have same results on another machine where I saw anything around 10-13 seconds which appear to be quite normal for a large ASP.NET applicaiton.
- My test installation had default content and configuration. You may get different results due to the whole array of factors, especially there is a lot of data pre-fetching going on. Check our caching reference for more details.
Let me know if this works for you, please do share your experience.
Here is the official Sitecore support article.