Тут знакомый наткнулся на странное поведение при мапировании файлов в винде:
[quote]
Есть приложение. Оно пережёвывает информацию из большого числа больших файлов и что-то вычисляет. Поскольку информация из файлов нужна не вся и нужно много случайного доступа в определённые фрагменты файлов, приложение время от времени отображает нужные куски файлов в виртуальную память и, обработав, освобождает. В некоторый момент времени вызов MapViewOfFileEx вылетает с ошибкой ERROR_NOT_ENOUGH_MEMORY, хотя памяти навалом, и физической, и виртуальной.
...
Анализ показал, что виртуальное адресное пространство процесса в это момент настолько фрагментировано, что MapViewOfFileEx просто не может найти непрерывный блок свободной памяти. Размер искомого блока довольно небольшой, около 30 мегабайт.
[/quote]
Обсуждение: http://forum.academ.org/index.php?showtopic=616656

Кто-нибудь с подобным сталкивался? Как с этим бороться? Почему это происходит?
--
Александр Замараев

Ответить