Я искал способ измерить использование памяти в Linux. Я нашел три основных способа сделать это, и я не уверен, что мне следует использовать, поэтому я спрашиваю здесь мнения.
Похоже, самый распространенный и, возможно, более простой способ
Память мониторинга должна прочитать / proc / pid / status и прочитать
соответствующее поле, VmSize
, VmData
или что-то еще. Это способ
программы ps, to, vmstat умудряются собирать эту информацию (я имею в виду,
мониторинг / proc / pid / ...). Эта информация предоставит
мгновенная информация.
Я могу вызвать fork, а затем exec для запуска нужной мне программы.
контролировать и ждать4, чтобы получить заполнить структуру rusage. Оттуда
Я могу прочитать нужное поле. Кажется, что в Linux
wait4 не заполняет поля памяти в структуре rsusage, а только
поля, связанные с использованием процессора. Это способ, которым команда времени получает
его информация.
Я могу изменить код strace, чтобы отслеживать все последующие brk,
Системные вызовы mmap, munmap и суммирование для получения размера кучи.
здесь сложно будет расшифровать все возможные аргументы mmap для чтения
только чтение | запись, exec и т. д. и проверка возвращаемых значений, чтобы узнать,
Система успешно.
Для 3), вы думаете, я могу измерить использование памяти таким образом? Это будет слишком сложно? Я хорошо разбираюсь в коде strace, но недостаточно разбираюсь в памяти, чтобы понять, возможно ли это.