Nano Hash - криптовалюты, майнинг, программирование

Существуют ли ограничения для переменных сеанса в ASP.net?

Я буду заселять DataTable и другие controls из комплекса object.

  1. Где я должен хранить такой object?
  2. При каком размере переменные сеанса начинают влиять на производительность страницы?

  • Как долго вам нужно хранить данные? Это для более чем одного PostBack? 20.02.2013
  • У вас много таких сложных объектов (по одному на каждую сессию)? Или, может быть, всего один сложный объект, который можно использовать во всем приложении? 20.02.2013
  • есть разные страницы и каждая страница опирается на один такой объект 20.02.2013
  • Насколько мне известно, размер сеанса ограничен только полем (хостом). Чем больше вы храните в сеансе (особенно для одновременно работающих пользователей), тем быстрее вы будете использовать память, которая должна быть доступна для других процессов. -- Нереально ли повторно закупать объект при каждой загрузке? (слишком много накладных расходов?) 20.02.2013
  • Но нужно ли хранить данные более чем через одну обратную передачу? 20.02.2013
  • @JohnSaunders да, более одного поста назад. Пока пользователь не закроет страницу 20.02.2013
  • А как вы планируете узнать, когда пользователь закроет страницу? 20.02.2013
  • @JohnSaunders - Просто ради любопытства, если бы это был только один постбэк, что бы вы предложили? 20.02.2013
  • Вопрос на самом деле во время одного запроса по сравнению с несколькими запросами. Если бы это был один запрос, вы могли бы сохранить его в HttpContext.Current.Request.Items, который привязан к одному запросу. Для нескольких запросов требуется Application или Session или ViewState или что-то в этом роде. 20.02.2013
  • @JohnSaunders Я еще не знаю. Страница, на которой будет установлена ​​еженедельная доступность врача. Объект будет хранить доступность, а позже, после внесения изменений... сохранит его в базе данных. 20.02.2013
  • Вы не можете полагаться на знание того, когда страница закроется. Нисколько. Это Интернет, а не настольное приложение. Я предлагаю вам подумать об этом, исходя из предположения, что вы никогда не узнаете, когда пользователь закончит работу со страницей. 20.02.2013
  • @JohnSaunders, в этом случае мы можем просто использовать ограничение времени по умолчанию для переменной сеанса и отправить пользователю сообщение о том, что срок действия страницы истекает. 20.02.2013
  • Конечно. Просто помните, что нет никакой связи между временем ожидания сеанса и временем ожидания проверки подлинности с помощью форм, и ни один из этих двух не информирует пользователя, а это означает, что у вас будет работать таймер на стороне клиента (который может синхронизироваться или не синхронизироваться с двумя другими таймерами). 20.02.2013

Ответы:


1

Данные в объекте Session хранятся в памяти на сервере. Таким образом, предел хранения — это память, доступная серверу. Эти данные не отправляются клиенту ни на каком этапе, если только вы не сделаете это явным образом. Вместо этого код MVC отправляет cookie в клиентский браузер после того, как вы присвоили какое-либо значение объекту Session. Затем значение этого файла cookie используется для уникальной идентификации сеанса.

So...

  1. Объект Session разработан специально для того, чтобы вы могли хранить данные, относящиеся к сеансу, на сервере, поэтому это подходящее место для размещения структур данных, специфичных для сеанса, как вы описываете.
  2. Поскольку объект Session предназначен только для сервера, использование Session для хранения результатов ресурсоемкой операции, неизменной при многократном обновлении страниц, ускорит загрузку страниц, поскольку вы можете использовать предыдущий результат вместо того, чтобы создавать его снова. Если вы не превысите ограничения памяти на сервере, вы не увидите снижения производительности.
20.02.2013
  • -1: состояние сеанса не обязательно сохраняется в памяти на сервере. Он может храниться в SQL Server или другом постоянном хранилище. 20.02.2013
  • @JohnSaunders, разве SQL Server тоже не хранится где-то на сервере? Или другими словами это не клиентское решение 13.11.2017
  • @usefulBee это может быть сервер, отличный от веб-сервера. 13.11.2017

  • 2
    1. Если это объект для каждого сеанса, словарь сеанса является разумным местом для его хранения.
    2. Если вы используете хранилище сеансов InProcess, размер объекта никогда не влияет на производительность страницы (по крайней мере, до тех пор, пока все данные не заставят процесс подкачиваться). Другие хранилища сеансов могут иметь небольшое влияние в зависимости от того, сколько времени требуется для перемещения данных, например. SQL локальному процессу. Это будет быстро, пока ваш объект не станет действительно большим.
    20.02.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..