Maxim Gorbunov fd0b1ac7c0 Generate CMakeLists (#2184) 8 months ago
..
unittests d28c55ab25 Intermediate changes 1 year ago
CMakeLists.darwin-arm64.txt ffff7a34e4 add darwin-arm64 CMakeLists 1 year ago
CMakeLists.darwin-x86_64.txt d28c55ab25 Intermediate changes 1 year ago
CMakeLists.linux-aarch64.txt d28c55ab25 Intermediate changes 1 year ago
CMakeLists.linux-x86_64.txt d28c55ab25 Intermediate changes 1 year ago
CMakeLists.txt fd0b1ac7c0 Generate CMakeLists (#2184) 8 months ago
CMakeLists.windows-x86_64.txt d28c55ab25 Intermediate changes 1 year ago
README.md d28c55ab25 Intermediate changes 1 year ago
mlock.h d28c55ab25 Intermediate changes 1 year ago
mlock_linux.cpp d28c55ab25 Intermediate changes 1 year ago
mlock_other.cpp d28c55ab25 Intermediate changes 1 year ago
ya.make d28c55ab25 Intermediate changes 1 year ago

README.md

mlock

MlockFileMappings подгружает и лочит в память все страницы исполняемого файла.

В отличии от вызова mlockall, функция не лочит другие страницы процесса. mlockall явно выделяет физическую память под все vma. Типичный процесс сначала стартует и инициализирует аллокатор, а потом уже вызывает функцию для mlock страниц. Аллокатор при старте выделяет большие диапазоны через mmap, но реально их не использует. Поэтому mlockall приводит в повышенному потреблению памяти.

Также, в отличии от mlockall, функция может подгрузить страницы в память сразу.