Я собираюсь быть полным придурком и сказать вам, что я сделал что-то еще более продвинутое, чем то, что вы описываете ... на работе. Так что, боюсь, это все из закрытых источников. Никогда не видел ничего подобного. Мы объединяем VM, AWE, MMF и (скоро) 32 <> 64-битный IPC в одну большую, среднюю машину обработки данных, занимающую до 64 ГБ памяти и обрабатывающую сотни наборов данных, десятки ГБ каждый .
Но я могу дать вам несколько советов: обмен представления AWE довольно медленный, потому что он принудительно приостанавливает все запущенные потоки во время обмена. Поэтому выбирайте размеры окон разумно (чем меньше, тем быстрее происходит свопинг, но затраты на вызовы ниже при больших размерах курса). Мы установили размеры представления AWE, равные размеру страницы Windows по умолчанию (4 КБ), но только потому, что произвольный доступ работает лучше всего таким образом. Доступ к данным Lineair может работать быстрее при больших размерах просмотра.
Каждое представление может отображаться в любую часть выделенной памяти AWE, поэтому одна вещь, которая может помочь, - это сопоставление только тех страниц в представление, к которому необходимо получить доступ, и попытка сэкономить на ненужных заменах представления (очередь приоритета). приходит на ум).
Кроме того, где-то в вашем проекте должен быть механизм регистрации, который обрабатывает связь между представлением и памятью AWE за этим. И это лучше быть потокобезопасным!
Что касается общего использования: нет, это не вписывается в обычные классы Delphi. Вы должны полностью переключиться на другую концепцию и основывать свои структуры данных на этом.
В любом случае, приятель удачи! Тебе это понадобится ...; -)