Действительно ли OutputCacheFilter в Microsoft MVC Preview 4 позволяет экономить на вызовах действий?

Мы развернули живой, свежий, шикарный сайт, используя предварительную версию 3, включая тщательное стресс-тестирование.

Кэширование вывода страниц стало нашим спасителем и позволило нам выполнить контрактные требования по производительности.

Мой вопрос заключается в том, есть ли разница между действием OutputCacheFilter и кэшированием вывода страницы?

Является ли кэширование вывода действия более быстрым, чем кэширование вывода страницы?

Решение

Внутри OutputCacheAttribute (он же фильтр кэша вывода) использует тот же внутренний механизм, что и кэширование вывода страницы (он же директива @OutputCache).

Поэтому он не быстрее, чем кэширование вывода страницы. Однако в MVC вы не можете использовать кэширование вывода страницы с помощью директивы @OutputCache, поскольку мы выводим представление (оно же страница) после выполнения действия. Поэтому вы получите очень мало пользы.

С фильтром выходного кэша он поступает правильно и не выполняет код действия, если результат находится в выходном кэше. Надеюсь, это поможет. :)

Комментарии (0)

Имейте в виду, что в настоящее время существует ошибка, если вы вызываете Html.RenderAction(...) для действия, которое помечено как кэшируемое. Вместо того, чтобы кэшироваться конкретное действие, кэшируется вся страница. Я уже сообщал об этом на codeplex, и, похоже, это известная проблема: Вызов для Action с [OutputCache(...)] приводит к кэшированию всей страницы.

Комментарии (0)