2009-11-09 2 views
2

У меня есть объекты, которые я сохраняю в файловой системе, используя сериализацию. Когда я загружаю приложение, должен ли я загружать все объекты в память или просто заглушки (для поиска возможностей)?Что нужно загружать в память при загрузке моего приложения?

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

Порядка составляет сотни записей не тысяч.

В каком направлении вы порекомендовали бы?

+0

насколько велика каждая запись? –

ответ

0

Если размер и количество объектов всегда будут относительно небольшими, загрузите их при запуске. В противном случае используйте заглушки/прокси.

0

Это зависит.

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

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

Это также зависит от размера записей и того, как часто они меняются.

4

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

Возможно, вы даже попытаетесь сохранить записи большинства запрашиваемых элементов и загрузить их при запуске.

+0

+1. Задерживаясь, поддерживая приложение, которое загружает все вперед, я не мог согласиться больше. Нет причин добавлять время после компиляции, прежде чем вы сможете начать выполнение. Это делает «быстрые исправления» чем угодно, но быстрым. –

+1

Ничего хуже, чем ждать приложения для загрузки «статических» данных, если оно не используется X-) –

0

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

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

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

0

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

Вы даже можете использовать Enterprise Library Caching Block, что может ускорить выполнение.

Смежные вопросы