Большая модель домена в памяти - PullRequest
1 голос
/ 01 марта 2010

Я работаю над проектом с большим графом объектов в памяти.Доменные объекты действительно «широки» и содержат целый набор данных, которые обычно являются посторонними.Я думаю о реализации какой-то ленивой модели загрузки.

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

Кто-нибудь делал что-то подобное до .Net с чистой реализацией?Спасибо

Ответы [ 3 ]

1 голос
/ 01 марта 2010

Кроме того, вы можете рассмотреть возможность использования WeakReference (s) в сочетании с отложенной загрузкой. Это избавит вас от OutOfMemoryException.

1 голос
/ 01 марта 2010

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

Хранение графа объектов в памяти на сервере и предоставление клиенту возможности массовой загрузки данных свойств с помощью отложенной загрузки прокси-сервера в качестве запасного варианта работали для нас намного лучше.

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

1 голос
/ 01 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...