Очистка numpy.memmap - PullRequest
       59

Очистка numpy.memmap

0 голосов
/ 16 мая 2011

Учитывая объект numpy.memmap, созданный с помощью mode='r' (то есть только для чтения), есть ли способ заставить его удалить все загруженные страницы из физической памяти без удаления самого объекта?

Другими словами, я бы хотел, чтобы ссылка на экземпляр memmap оставалась действительной, но вся физическая память, которая используется для кэширования данных на диске, должна быть незафиксированной.Любые представления массива memmap также должны оставаться действительными.

Я надеюсь использовать это в качестве диагностического инструмента, чтобы помочь отделить «реальные» требования к памяти скрипта от «переходных» требований, вызванныхиспользование memmap.

Я использую Python 2.7 в RedHat.

1 Ответ

2 голосов
/ 16 мая 2011

Если вы запускаете «pmap SCRIPT-PID», «реальная» память отображается как блоки «[anon]», и все отображенные в памяти файлы отображаются с именем файла в последнем столбце.

Очистка страниц возможна на уровне C, если вам удастся удержать указатель на начало отображения и вызвать на нем madvise (ptr, length, MADV_DONTNEED), но это будет неуклюже.

...