Что я могу использовать сессию или кэш - PullRequest
1 голос
/ 01 марта 2012

Я использую главную страницу, в которой меню генерируется динамически в соответствии с ролью пользователя в коде. Это же меню используется для всех приложений для конкретного пользователя до выхода из системы. Так что вместо того, чтобы воссоздать его, мне нужно одно и то же меню для всех приложений. Меню находится в StringBuilder, который очень большой размер. Является ли кеш сессии или данных лучше и требует меньше памяти в моей ситуации и почему. Пожалуйста, предложите?

Я хочу улучшить производительность главной страницы.

Спасибо

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Я думаю, что кэш будет лучше, поскольку у вас будет только один экземпляр, созданный для одной роли, но Session заставит его создать несколько экземпляров, к которым обращается пользователь, и вам придется иногда ждать тайм-аут сеанса, чтобы освободить память

0 голосов
/ 01 марта 2012

Если каждый пользователь получит одно и то же меню:

Вам следует подумать о том, чтобы поместить его в приложение «Кэш» - приложение [«MyMenu»] или в статическое поле одного из ваших объектов.

Основная причина этого - жизнь. Если вы поместите его в объект уровня приложения, он будет длиться в течение всего жизненного цикла приложения. Помещение его в объект уровня сеанса приведет к его потере по окончании сеанса - поскольку сеанс запускается для каждого пользователя, вы вскоре обнаружите, что восстанавливаете данные.

С другой стороны ... если он уникален для пользователя:

Сессия предоставляет удобное место для размещения этих данных, поскольку они уникальны для этого пользователя и не будут существовать долго после того, как этот пользователь покинет сайт.

Также подумайте о:

Если вы действительно думаете, что память будет проблемой, или вы хотите точно определить, как долго вы ее храните в течение

Положи его в кеш. Вы можете определить, сколько времени он живет в кеше, и, кроме того, кэш начнет сбрасывать объекты, когда ему не хватает памяти - поэтому он более чувствителен к загрузке, чем другие опции.

Хорошее обсуждение Сеанс против Cache на SO уже

Дополнительно

Вы уверены, что ваше меню такое большое? Если это так, вы можете рассмотреть альтернативы - насколько вы говорите?

...