Преобразование сеанса в строку и хранение в переменной сеанса улучшит производительность?
Привет,
Я храню огромный набор данных в переменной сеанса. что приводит к снижению производительности приложения. Поскольку набор данных содержит информацию, специфичную для пользователя, следовательно, он не может хранить эти огромные данные в объекте кэша.
Теперь я преобразую этот набор данных в xml и сохраняю его в сеансе в виде строки. При извлечении данных я снова преобразую эту xml-строку в набор данных.
поможет ли этот шаг мне улучшить производительность приложения?
Каковы другие варианты уменьшения размера пользовательского сеанса и повышения производительности приложения?
Что я уже пробовал:
// Convert dataset to string and storing in the session Session["UserData"] = Ds.GetXml().ToString(); // Convert string to dataset DataSet DS = new DataSet() ; stream = new StringReader(xmlData); reader = new XmlTextReader(stream); DS.ReadXml(reader);
Dave Kreskowiak
Что вы подразумеваете под"огромным"? Сколько и о каких данных вы говорите?
Существуют проблемы с использованием объекта сеанса.
Abhijit Parab
Это около 194 КБ на сеанс, но когда несколько потоков запросов в одном экземпляре, чем он потребляет высокий цикл процессора и замедляет работу приложения. Я храню набор данных как данные в сеансе.
F-ES Sitecore
Преобразование его в строку займет еще больше места в сеансе, а преобразование в строку, а затем обратно в данные также займет процессорное время, так что это, вероятно, приведет к ухудшению производительности и большему использованию памяти. Оставьте его как набор данных, или еще лучше посмотрите, можете ли вы просто не хранить так много данных на человека. Вы никогда не знаете, чтение данных из базы данных только тогда, когда вам это нужно, может быть не так уж плохо с точки зрения производительности.