![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по 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]а зачем ей резервировать весь? все все равно не влезет, придется в своп кидать, а смысл кидать в своп, если он и так на винте...