менеджер памяти с выгрузкой данных на диск
От: Аноним  
Дата: 23.12.11 09:48
Оценка:
Доброе время суток.

есть некая готовая библиотека, довольно таки большая. Все работает замечательно за исключением одного момента — все данных хранятся в памяти (промах архитекторов). С этим возникают некоторые проблемы — при больших объемах данных библиотека упирается в размеры доступной памяти. Возникла идея сделать фикс — выгружать не используемые блоки данных на диск. Вижу несколько путей решения:
— написать свой менеджер памяти / доработать существующие
Минус идеи — слишком много исправлений по всей библиотеке (замена всех вызовов new/delete/malloc/free своими)
— переход на свои smart-указатели (в оригинале используется boost::shared_ptr<>) либо доработка boost::shared_ptr<>
Минус идеи — слишком много исправлений по всей библиотеке, возможные конфликты с другим кодом (в случае доработки boost::shared_ptr<>)
— реализация менеджера внутри центральных объектов (например, есть некая таблица, хранящая все объекты, объекты добавляются через API таблицы)
Минус идеи — не понятно, как вычислять размер объектов (sizeof(obj) не всегда будет верным)


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