Assuming you are not using authorization or using dynamic content, at a lower level you will get better results. The lowest level is kernel mode caching. http://learn.iis.net/page.aspx/154/walkthrough-iis-70-output-caching/
Think about it from an office perspective. Technically, the request chain is: boss, secretary, answering machine and telephone line provider.
Imagine an office without a secretary. The boss must answer every call. This is a script without a cache at all.
The application cache is the secretary. It handles calls, so the boss (application) does not need to answer to repeat the same thing over and over. A secretary is someone who sits between the boss and the outside world. She can handle the simplest scenarios. The boss is worried when there is no secretary at work (low memory).
But the secretary is a person, so she returns home at some time in the evening (the ASPNET application is processed at some time, and the application cache is exposed, therefore, from the ASPNET point of view, the secretary shares the same application with the boss).
An answering machine works here. Not only can he force the secretary to answer stupid questions again and again, he screens the boss when there is no secretary. It's just a machine, and the client listens to a good pre-recorded voice or music (cached item) when neither the secretary nor the boss can answer them.
IIS Caching Mode is an answering machine for your asnet office. An answering machine is much cheaper than a secret one. Itโs just a microcontroller with a tape, it doesnโt even consume coffee, it just plays a cassette or something like that.
Well, it works in one window, but it works much better because it simply performs the simple task of delivering content at maximum speed using its own low-level system resource management.
However, kernel mode is a perceptual way to cache if you have semi-dynamic content in terms of performance.