Вниз
Скачать: 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.97 c
15-1164096145
DelphiLexx
2006-11-21 11:02
2006.12.10
Помогите создать функцию, умеющая красиво сокращать текст


15-1164102361
Cyrax
2006-11-21 12:46
2006.12.10
Чем отличается кодер от программиста ?


2-1164106222
JetuS
2006-11-21 13:50
2006.12.10
Передача пользовательского типа из функции в DLL


2-1163951411
Alians
2006-11-19 18:50
2006.12.10
RasEnumEntriesA


2-1164184870
vitv
2006-11-22 11:41
2006.12.10
Миграция с InterBase 6.1




   Наверх