Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по MapViewOfFile


AlexeyT ©   (2006-11-19 20:26:00) 

Не совсем понятно вот что: если я маплю достаточно большой файл целиком (указываю пар-р размера = 0), то система резервирует память под весь файл или же нет, только под какой-то фиксированный буфер? Например, файл у меня 1Гб - будет резервироваться весь Гб? а что если физической памяти не хватит?


Германн   (2006-11-20 01:39:00) [1]


> Надо же, как все запущено...
>

Запущено всё гораздо больше, чем ты себе представил :-(


AlexeyT   (2006-11-20 01:16:00) [2]

Спасибо за инфу.


> А в Win98 файл должен помещатся в область от 0x80000000
> до 0xBFFFFFFF, причём общую для всех приложений, причём
> целиком, даже если мапится часть.
> <Цитата>


Надо же, как все запущено...

Спасибо.


guav   (2006-11-19 21:59:00) [3]

> [8] KilkennyCat ©   (19.11.06 21:54)
> учитывая FAT32,

Учитываем NTFS для нормальной ОС.
А в Win98 файл должен помещатся в область от 0x80000000 до 0xBFFFFFFF, причём общую для всех приложений, причём целиком, даже если мапится часть.


KilkennyCat   (2006-11-19 21:54:00) [4]

> Доступно процессу только 2 ГБ

учитывая FAT32, сам файл больше 2 не будет.


guav   (2006-11-19 21:40:00) [5]

Если учитывать win98, то точно 1 ГБ не получится.


guav   (2006-11-19 21:35:00) [6]

> [5] AlexeyT ©   (19.11.06 21:07)
> Т.е. могу отмапить весь 10Гбайтный файл

в Win32 - нет.
По крайней мере в сделать MapViewOfFile для всех 10 ГБ.
Доступно процессу только 2 ГБ (3 ГБ), из них выделяются адреса и под другие нужды приложения, так что я бы даже не был уверен, что 1 ГБ получится отмапить.


AlexeyT   (2006-11-19 21:07:00) [7]


> А причём тут физическая память, место выделяется в виртуально
> адресном пространстве процесса, файл загружается в память
> по требованию и по возможности.


Т.е. могу отмапить весь 10Гбайтный файл и затем свободно обращаться к разным адресам мапленой памяти, которые будут давать чтение с разных мест файла?


guav   (2006-11-19 21:01:00) [8]

> [0] AlexeyT ©   (19.11.06 20:26)
> а что если физической памяти не хватит?

А причём тут физическая память, место выделяется в виртуально адресном пространстве процесса, файл загружается в память по требованию и по возможности.


KilkennyCat   (2006-11-19 21:00:00) [9]

нет.


AlexeyT   (2006-11-19 20:57:00) [10]

ты точно знаешь?


KilkennyCat   (2006-11-19 20:51:00) [11]

а зачем ей резервировать весь? все все равно не влезет, придется в своп кидать, а смысл кидать в своп, если он и так на винте...


Наверх

Титульная страница Поиск, карта сайта Написать письмо