Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизВопрос по MapViewOfFile Найти похожие ветки
← →
AlexeyT © (2006-11-19 20:26) [0]Не совсем понятно вот что: если я маплю достаточно большой файл целиком (указываю пар-р размера = 0), то система резервирует память под весь файл или же нет, только под какой-то фиксированный буфер? Например, файл у меня 1Гб - будет резервироваться весь Гб? а что если физической памяти не хватит?
← →
KilkennyCat © (2006-11-19 20:51) [1]а зачем ей резервировать весь? все все равно не влезет, придется в своп кидать, а смысл кидать в своп, если он и так на винте...
← →
AlexeyT © (2006-11-19 20:57) [2]ты точно знаешь?
← →
KilkennyCat © (2006-11-19 21:00) [3]нет.
← →
guav © (2006-11-19 21:01) [4]> [0] AlexeyT © (19.11.06 20:26)
> а что если физической памяти не хватит?
А причём тут физическая память, место выделяется в виртуально адресном пространстве процесса, файл загружается в память по требованию и по возможности.
← →
AlexeyT © (2006-11-19 21:07) [5]
> А причём тут физическая память, место выделяется в виртуально
> адресном пространстве процесса, файл загружается в память
> по требованию и по возможности.
Т.е. могу отмапить весь 10Гбайтный файл и затем свободно обращаться к разным адресам мапленой памяти, которые будут давать чтение с разных мест файла?
← →
guav © (2006-11-19 21:35) [6]> [5] AlexeyT © (19.11.06 21:07)
> Т.е. могу отмапить весь 10Гбайтный файл
в Win32 - нет.
По крайней мере в сделать MapViewOfFile для всех 10 ГБ.
Доступно процессу только 2 ГБ (3 ГБ), из них выделяются адреса и под другие нужды приложения, так что я бы даже не был уверен, что 1 ГБ получится отмапить.
← →
guav © (2006-11-19 21:40) [7]Если учитывать win98, то точно 1 ГБ не получится.
← →
KilkennyCat © (2006-11-19 21:54) [8]> Доступно процессу только 2 ГБ
учитывая FAT32, сам файл больше 2 не будет.
← →
guav © (2006-11-19 21:59) [9]> [8] KilkennyCat © (19.11.06 21:54)
> учитывая FAT32,
Учитываем NTFS для нормальной ОС.
А в Win98 файл должен помещатся в область от 0x80000000 до 0xBFFFFFFF, причём общую для всех приложений, причём целиком, даже если мапится часть.
← →
AlexeyT © (2006-11-20 01:16) [10]Спасибо за инфу.
> А в Win98 файл должен помещатся в область от 0x80000000
> до 0xBFFFFFFF, причём общую для всех приложений, причём
> целиком, даже если мапится часть.
> <Цитата>
Надо же, как все запущено...
Спасибо.
← →
Германн © (2006-11-20 01:39) [11]
> Надо же, как все запущено...
>
Запущено всё гораздо больше, чем ты себе представил :-(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c