Использование файла сопоставления памяти в качестве файла подкачки? - PullRequest
5 голосов
/ 02 февраля 2011

Я работаю в Android, где память ограничена и нет функции, подобной файлу подкачки.Я читал, что люди реализовали файл подкачки, как функциональность, используя файлы отображения памяти в своих приложениях, но я не понимаю, как это будет работать.Кто-нибудь знает?

Я думаю, что общая идея состоит в том, что, если моя программа хотела использовать массив int размером, скажем, 20 МБ, я мог бы создать данные для этого массива в файле 20 МБ, а затем использоватьфункция отображения файла в память для прозрачного ввода в память тех частей файла, которые мне нужны для чтения и записи.Важным элементом является то, что, хотя у меня есть 20 МБ места для чтения / записи, только небольшая часть этого когда-либо находится в памяти за раз (приложения Android ограничены ~ 24 МБ памяти).

IЯ бы предпочел работать на Java для этого, но решение на C тоже подойдет.

Редактировать: Этот трюк с отображением памяти упоминается здесь, но я не понимаю, как он будет работать http://grammerjack.blogspot.com/2009/10/gles-quake-port-of-quake-to-android.html

1 Ответ

1 голос
/ 02 февраля 2011

В Java используйте java.nio.MappedByteBuffer.

В C используйте функцию POSIX mmap (). На Android работает нормально.

...