Я видел много вопросов относительно использования памяти malloc, но ни одного из них относительно того, с чем я имею дело.
Я работал над процессом с высоким потреблением памяти, который также требовал хорошей производительности.
Код находится на C.
Мое намерение состоит в том, чтобы позволить этому процессу использовать до 70% памяти машины в качестве нестраничной памяти (для производительности) и все, что выше, в качестве памяти с возможностью постраничного вывода, так что ОС все еще будет иметь некоторую память для «воспроизведения». 1003 *
, так как он мне нужен во время выполнения, любые программы профилирования (valgrind или аналогичные) не имеют отношения.
проблема в том, что я могу отслеживать только объем памяти, который я запрашивал, но не фактический размер, который использует malloc. так что, хотя я думаю, что у меня выделено не более 700 МБ, malloc удерживает ~ 1 ГБ памяти, и, поскольку я просил нестраничные, вся эта память нестранична, и процессы начинают умирать для меня.
Если есть способ узнать, сколько памяти с малой страницей хранится для моего процесса, это будет здорово. Но, читая посты здесь, я думаю, это все еще не поддерживается.
Я открыт для любой идеи или совета, которые мне могут дать.
Спасибо.