The content you're reading is getting on in years
This post is on the older side and its content may be out of date.
Be sure to visit our blogs homepage for our latest news, updates and information.
Output caching in Sitefinity is a very important and useful feature, especially for websites with heavy load. In a nutshell, Sitefinity caches the rendered output for a particular page (personalized pages also!) when the page is requested for the first time and stores it in memory for other requests which may need the same output. In this way, the loading speed of the pages is significantly improved. If you want to find out more details about the output cache in Sitefinity, take a look at this documentation article.
Now, when you have a website with a heavy load, on start-up, one page may be requested many times before the first request stores it into the cache. This is how output cache works in ASP.NET. Such scenario will cause a lot of requests to the database and as many compilations of one and the same page, which will lead in slow application start-up and heavy CPU load during it. To solve this issue, we introduced an optimization to the output cache which locks the page after the first request until it gets into the cache and then serves the cached version to the other request. This feature is available per Output cache Profile and it is switched off by default. The exact place where you may find it is: Advanced Settings -> System -> Output Cache Settings -> Output Cache Profiles -> Your Profile -> Wait for page OutputCache to fill (see the screenshot bellow).
The benefit will, of course, be lower CPU and database load, and consequently faster application start-up. Moreover, the benefit may be seen not only on application start-up, but also on when you publish a page template. Then, the output cache is invalidated, and the affected page/s should be loaded again form database and recompiled.One may argue that this feature will make all the requests that requested a certain page, which is not cached, wait for the output cache, but leaving them all to call the database for content and compile that content has a limit. That limit is almost always overreached in websites with heavy load.
View all posts from Ivan Eftimov on the Progress blog. Connect with us about all things application development and deployment, data integration and digital business.
Subscribe to get all the news, info and tutorials you need to build better business apps and sites
You have the right to request deletion of your Personal Information at any time.
You can also ask us not to pass your Personal Information to third parties here: Do Not Sell My Info
We see that you have already chosen to receive marketing materials from us. If you wish to change this at any time you may do so by clicking here.
Thank you for your continued interest in Progress. Based on either your previous activity on our websites or our ongoing relationship, we will keep you updated on our products, solutions, services, company news and events. If you decide that you want to be removed from our mailing lists at any time, you can change your contact preferences by clicking here.
Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.Learn More