Ответ 1
Как я понимаю, размер виртуальной памяти, которую использует процесс, указан как "total-vm". Часть его действительно отображается в ОЗУ (выделено и используется). Это "RSS".
Часть RSS выделяется в реальных блоках памяти (кроме отображения в файл или устройство). Это анонимная память ( "anon-rss" ), и есть также блоки памяти RSS, которые отображаются в устройства и файлы ( "файл-rss" ).
Итак, если вы откроете огромный файл в vim, файл-rss будет высоким, с другой стороны, если вы malloc() много памяти и действительно используете его, ваш anon-rss также будет высоким.
С другой стороны, если вы выделяете много места (с помощью malloc()), но nevers его используют, сумма-vm будет выше, но реальная память не будет использоваться (из-за перекомпоновки памяти) поэтому значения rss будут низкими.