LINUX.ORG.RU

Узнать что из кучи в свопе, а что нет: как?

 , ,


0

2

Допустим. Есть некий юникс. На нем можно писать на C с использованием динамической памяти (помещать переменные в кучу). Можно выдувать большие нагромождения структур данных, что часть памяти уходит в своп. У нас есть все указатели на то, что в куче.

Вопрос, можно ли по значению указателя на участок памяти в куче узнать, в свопе объект или нет? Например, я не хочу ворошить всю кучу, а просто пройтись только по невыгруженным в своп данным.

И на перспективу. Например я точно знаю, сколько на данный момент доступно оперативки, а сколько свопа. Могу ли я как прикладной программист решать, что из данных моей программы будет в свопе, а что в оперативки, и сам управлять сам данными: выгрузкой из свопа и помещением в своп?

★★★★★

можно ли по значению указателя на участок памяти в куче узнать, в свопе объект или нет?

В линуксах есть вызов mincore(...)

Могу ли я как прикладной программист решать, что из данных моей программы будет в свопе

Можешь указать что выгружать нельзя и раздавать советы что можно в первую очередь - см. mlock(...), madvise(...) и posix_madvise(...).

mashina ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.