Это может показаться слишком очевидным, но как насчет файлов с отображенной памятью? Это делает то, что вы хотите, и даже позволяет 32-разрядному приложению использовать намного больше 4 ГБ памяти. Принцип прост: вы выделяете нужную память (на диске), а затем отображаете только часть ее в системную память. Вы можете, например, отобразить что-то вроде 75% доступного объема физической памяти. Затем поработайте над этим, и когда вам понадобится другая часть данных, просто переназначьте карту. Недостатком этого является то, что вы должны делать сопоставление вручную, но это не обязательно плохо. Хорошо, что вы можете использовать больше данных, чем умещается в физической памяти и в пределах памяти для каждого процесса. Он отлично работает, если вы используете только часть данных в любой момент времени.
Могут быть библиотеки, которые делают это автоматически, например, предложенная KLE (хотя я этого не знаю). Выполнение этого вручную означает, что вы многое узнаете об этом и получите больший контроль, хотя я бы предпочел библиотеку, если она делает именно то, что вы хотите в отношении того, как и когда используется диск.
Это работает одинаково на обеих Windows на Unix. Для Windows приведена статья Раймонда Чена , в которой показан простой пример.