Большой объект в проекте Silverlight / ASP.NET / WCF? - PullRequest
0 голосов
/ 15 декабря 2010

Мне приходится иметь дело с классом, который загружается за 2-3 минуты. Этот объект находится на стороне сервера проекта silverlight / ASP / WCF. После загрузки этот объект будет содержать список из 5 000 000 объектов меньшего размера, который будет использоваться для выполнения некоторых вычислений.

Пользователи не возражают ждать 2 или 3 минуты при загрузке приложения, но они не хотят ждать снова каждый раз, когда вычисляют что-то.

Мне бы хотелось, чтобы вы указали мои параметры.

Вариант A: сохранить большой объект в переменной сеанса. Некоторые люди утверждают, что переменные сессии являются ядом ... особенно при использовании с большим объектом. Это действительно настолько плохо?

Вариант B: загрузить большой объект при запуске сервера, а затем найти способ совместно использовать или дублировать этот объект между сеансами

Вариант C (этот вариант будет работать ... но он не идеален): создайте второй объект, который скопирует 5 000 000 объектов из моего класса, отнимающего много времени, и затем отправит его на клиентскую сторону. Однако это решение не является идеальным, поскольку эти 5 000 000 объектов представляют собой разумные данные, которые не должны быть доступны «как есть» на стороне клиента.

1 Ответ

1 голос
/ 15 декабря 2010

Вы выдаваете три метода, первый и второй, используйте качку, я думаю, что они не являются хорошими идеями.

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

или Вы можете использовать кеш для кеширования экземпляра.

...