We have an EpiServer website, which loads fine in Visual Studio but when deployed to the IIS server can take up to 3 minutes to initally load a single page.
This occurs for every page's initial load. After the initial load the page loads fine and performs as expected. It is only the initial compilation of the page that seems to be very slow.
The IIS server is running under VMWare and is Windows Server 2012 running IIS 8.5.
We are running the latest version of EpiServer and have set the optimize compilation value in the web.config to true.
Strangely during the period of time it takes for the page to load the CPU and memory utilization on the server is near nothing. It is as if a request has been sent somewhere but hasn't responded such as to SQL Server. But if that were the case I would expect it do that every time a page loads.
Any help is appreciated.
Compilation debug = false?
Try stripping down a page to simply display hello world without menus and similar. If you are using some heavy episerver calls like recursive GetChildren for menus, that will take a long while at start because it will hit the database instead of Episervers nice caching. Next request will then be smooth because it will hit the cache. Check if you get the same delay of you publish a page as well, in that case you simply have a performance issue that cache is hiding. If that is the case, measure your logic execution time and rewrite it.
Most probable cause is caching combined with some slow logic...since it's not spiking cpu or memory it's probably an external call vs database or web service.
...or of course your initial guess on slow compilation but I've never really seen that so probably not