Abhijit Parab Ответов: 1

Преобразование сеанса в строку и хранение в переменной сеанса улучшит производительность?


Привет,

Я храню огромный набор данных в переменной сеанса. что приводит к снижению производительности приложения. Поскольку набор данных содержит информацию, специфичную для пользователя, следовательно, он не может хранить эти огромные данные в объекте кэша.
Теперь я преобразую этот набор данных в 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

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

1 Ответов

Рейтинг:
1

Mehdi Gholam

Как правило, отказ от использования XML повысит производительность, попробуйте использовать fastJSON[^] для сериализации набора данных.

Не держась за "огромные" данные, будет лучше.

Попробуйте переосмыслить то, что вам действительно нужно хранить, кроме вышеперечисленного, мы не можем помочь вам с той небольшой информацией, которую вы предоставили.


Abhijit Parab

Данные в сеансе составляют около 194 КБ, но когда несколько потоков запросов в одном экземпляре, чем он потребляет высокий цикл процессора и замедляет работу приложения.
После преобразования набора данных в json и сохранения его в переменной сеанса это поможет повысить производительность?