Хорошо, я какое-то время работал над проектом ASP.NET, и мне кажется, что я сделал несколько неудачных дизайнерских решений, которые возвращаются, чтобы преследовать меня, так как проект становится все больше и больше с точки зрения содержания.data.
После прочтения по управлению памятью .NET я думаю, что определил целый ряд потенциальных причин.Поскольку вещи, которые я делаю, не особенно особенные, мне интересно, есть ли стандартный шаблон для достижения того, чего я хочу сделать, которого я пропускаю.
Итак, у меня есть (довольно дорогой запрос), который дает результаты от 1 до 20000.При последующих запросах мы можем просто перелистывать набор результатов, поэтому я сохраняю этот результат в сеансе.Сессия InProc.Мне интересно:
Имеет ли смысл а) сохранять результат б) в сеансе в) в процессе?Я хочу скорость (а).Я не знаю, есть ли более эффективный способ, чем хранить его пользователем (b), и если я использую более сложный сервер состояний - разве он не станет медленнее (c)?Или это может быть решением проблемы более быстрого удаления этих крупных объектов вместо сохранения последнего результирующего набора в ОЗУ до истечения сеанса?
Если какой-либо набор результатов> ~ 20000 строк потенциально может оказатьсяиспортить LOH, есть ли общий способ обойти это?
Я знаю, что этот вопрос немного занижен.Я только что понял, что мой общий дизайн может быть ошибочным (относительно масштабируемости), и я просто пытаюсь оценить, насколько именно он несовершенен.Я надеюсь, что некоторые подсказки о стандартных шаблонах могут быть собраны, что, тем не менее, превращает этот вопрос в общий полезный вопрос.