Здравствуйте, MasterZiv, Вы писали:
MZ>On 12/23/2011 01:48 PM, Аноним 431 wrote:
>> есть некая готовая библиотека, довольно таки большая. Все работает замечательно >> за исключением одного момента — все данных хранятся в памяти (промах >> архитекторов). С этим возникают некоторые проблемы — при больших объемах данных >> библиотека упирается в размеры доступной памяти.
MZ>В какой размер памяти она упирается ?
создается PDF документ с 10000+ страницами.
MZ> Возникла идея сделать фикс — >> выгружать не используемые блоки данных на диск. Вижу несколько путей решения: >> — написать свой менеджер памяти / доработать существующие
MZ>Идея дурацкая. Лучше перенести всё на платформу с поддержкой виртуальной MZ>памяти. это и все современные Win, и любой Lin / Unix. MZ>Если не хватит 32битной памяти -- перенесите на 64 бита.
библиотека существует в 2х вариантах, уточняю, какой пользуется кастомер.
>> Минус идеи — слишком много исправлений по всей библиотеке (замена всех вызовов >> new/delete/malloc/free своими)
MZ>Это как раз не проблема. Минус идеи в том, что выделение памяти -- не то MZ>место, где ты сможеш выгруженную память подгружать обратно. MZ>Это надо делать при доступе к памяти, при чтении даже. MZ>Это тебе надо грубо говоря заменить весь доступ к внутренним массивам MZ>данных на вызовы своих функций, где ты будеш проверять, что что-то не MZ>загружено, и подгружать (выгружая другое).
MZ>Либо -- написать свой менеджер виртуальной памяти. А нафига его MZ>писать, если они уже есть ?
MZ>...
MZ>Это всё неверные идеи. Тебе надо переопределять ДОСТУП к памяти, а не MZ>выделение её. Мэнеджера памяти тут мало.