Могу ли я использовать WeakReference в своей сложной объектной структуре с помощью db4o?

StackOverflow https://stackoverflow.com/questions/1913155

  •  19-09-2019
  •  | 
  •  

Вопрос

Я подумываю о переносе приложения на db4o.Модель данных состоит из множества небольших объектов с множеством ссылок между собой.Например, у меня есть книга, в которой указан автор и глава.Главы имеют разделы, разделы содержат большие блоки текста, изображения и ссылки на упомянутых персонажей.

Я думаю, что должна быть возможность хранить метаструктуру в памяти (все, кроме текстовых блоков), но мне было интересно, могу ли я использовать какой-нибудь хитрый трюк с использованием WeakReference, чтобы db4o просто сохранял в памяти ту часть модели, которая мне действительно нужна ( то естькоторым я недавно пользовался).

То же самое относится и к текстовым объектам (размер которых должен составлять около 1–10 КБ).Можно ли получить строку, не беспокоясь о уровне БД и не запрашивая текстовый объект, используя искусственный идентификатор внутри метода получения и не используя жесткую ссылку, которая постоянно хранит весь текст в памяти?

Это было полезно?

Решение

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

Управление использованием памяти должно осуществляться с помощью активация функции.Активация может помочь вам сохранить в памяти только часть вашей модели, а слабые ссылки помогут вам больше не использовать объекты GC.Я думаю, что это правильный путь.

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

Горан

Другие советы

В последнее время я не использовал db40 или какой-либо другой продукт ORM/OODB, однако мне показалось, что такого рода функции управления памятью и графами должны быть частью самой платформы, а не чем-то, что вы строите поверх нее.Если db40 от Versant не предлагает этого, возможно, вам стоит поискать другой продукт, который его предлагает.Итак, я понимаю, что это не тот ответ, который вы ищете, но использование этой структуры будет моей первой точкой захода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top