Вниз
Скачать: CL | DM;

Вопрос по 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
15-1163685346
Чапаев
2006-11-16 16:55
2006.12.10
"Детям 60-70-80х посвящается"


15-1163765456
Elen
2006-11-17 15:10
2006.12.10
Нужна библиотека материалов


2-1164377355
*Стажер*
2006-11-24 17:09
2006.12.10
Ассоциация файла с программой


4-1154078564
leonidus
2006-07-28 13:22
2006.12.10
Работа с Shell_NotifyIcon


15-1163791359
Kolan
2006-11-17 22:22
2006.12.10
А бывает китайско-русский переводчик?




   Наверх