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