EPiServer 7: Startup Performance
One of the areas we have improved is the startup time of EPiServer 7, there is a lot of new functionality that requires initialization but it actually starts faster that previous versions.
Some of the changes we have done is using parallelization where a single initialization module runs multiple independent tasks in parallel or run some tasks asynchronously. Another change to speed up typed pages is that we precompile the Castle proxies that is backing your custom models , that processes starts in the background before the the first page is accessed. We also enabled the optimizeCompilations by default which I blogged about a few years back, that does a big difference. We also rewrote assembly scanning and implemented a disk based cache and centralized discovery of types to avoid doing reflection over and over again.
To make it easier to debug startup performance there is a hidden gem that displays the last startup and how long time each initialization module needed at http://[site]/[UI]/Shell/Debug/ShowTimeMeters.
There is a web.config setting in appSettings that enables this debug view, you get the name of the key that goes into web.config when you access the url the first time.
Update: If you are running one of the EPiServer 7 preview versions then the URL will be http://[site]/[UI]/modules/Shell/Debug/ShowTimeMeters instead. Thanks Steve for noticing.