Подтвердить что ты не робот

Что означает "Размер виртуальной машины" в диспетчере задач Windows?

Виртуальная память с точки зрения размера компьютера

[способ сделать программу] думаю имеет большой диапазон смежных адреса; но на самом деле части его в настоящее время используются, разбросаны вокруг ОЗУ, а неактивные части сохраненный в файле диска. (Wikipedia)

Я бы интерпретировал VM Size в диспетчере задач Windows как общее адресное пространство виртуальной памяти или объем памяти, который в данный момент используется в виртуальной памяти.

Но в диспетчере задач размер WM во многих случаях меньше, чем использование Mem, которое должно быть количеством оперативной памяти, используемой процессом. Поэтому я предполагаю, что WM Size означает что-то еще?

4b9b3361

Ответ 1

Это общее количество всех частных (не общих) байтов, выделенных этим процессом, в настоящее время в физической памяти или нет.

См. также Вводное руководство по управлению памятью Windows или Commit Charge Wikipedia статья

Для состояния процесса просмотра разработчиков, подобного этому, я бы рекомендовал установить SysInternals Process Explorer и использовать его вместо Диспетчера задач по умолчанию. Это значение называется "Private Bytes" в нем.

Ответ 2

Какой правильный ответ о размере VM?

  • В ужасе кодирования

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

  • В комментарии ужаса кодирования

    Вы ошибаетесь в размере VM. Это общее количество всех частных (не общих) байтов, выделенных этим процессом, будь то в настоящее время в физической памяти или нет. Это лучшее значение для отслеживания утечки памяти, чем "Использование памяти". Такое же значение доступно в Performance Monitor как "Process: Private Bytes".

  • В MSDN

    Размер виртуальной памяти: Объем виртуальной памяти или адресного пространства, переданного процессу.

Я сбиваю с толку то, что является корневым.

Ответ 3

Объем памяти, отображаемый в адресное пространство этого процесса. Это может включать в себя сопоставления общей памяти.

В процессе будут разделы раздела памяти для каждого общего объекта (DLL), который является его частью, а также некоторая память для стека и области, выделенные самим процессом.

Например, глядя на карту памяти команды cat в моей системе, я могу видеть ее отображения памяти. В этом случае я использую cat /proc/self/maps для исследования самого процесса cat. В свою виртуальную память входит сама бинарная часть, куча, локальная информация, libc (с различными разрешениями), ld.so(динамический компоновщик), стек, vdso и vsyscall разделы и некоторые анонимные сопоставления (сопоставленные страницы без файла резервной копии).

00400000-00408000         r-xp      /bin/cat
00607000-00608000         rw-p      /bin/cat
008ac000-008cd000         rw-p      [heap]
7fbd54175000-7fbd543cf000 r--p      /usr/lib/locale/locale-archive
7fbd543cf000-7fbd54519000 r-xp      /lib/libc-2.7.so
7fbd54519000-7fbd54718000 ---p      /lib/libc-2.7.so
7fbd54718000-7fbd5471b000 r--p      /lib/libc-2.7.so
7fbd5471b000-7fbd5471d000 rw-p      /lib/libc-2.7.so
7fbd5471d000-7fbd54722000 rw-p
7fbd54722000-7fbd5473e000 r-xp      /lib/ld-2.7.so
7fbd5491d000-7fbd5491f000 rw-p 
7fbd5493a000-7fbd5493d000 rw-p
7fbd5493d000-7fbd5493f000 rw-p      /lib/ld-2.7.so
7fff5c929000-7fff5c93e000 rw-p      [stack]
7fff5c9fe000-7fff5c9ff000 r-xp      [vdso]
ffffffffff600000-ffffffffff601000 r-xp    [vsyscall]

Для каждого отображения вычтите начальный адрес из конечного адреса, чтобы определить его размер, например строку [stack]: 0x7fff5c9ff000 - 0x7fff5c9fe000 = 0x1000. В десятичном значении 4096 байт - стек 4 kiB.

Если вы добавите все эти цифры, вы получите размер виртуальной памяти процесса (VM).

Размер виртуальной машины не является надежным способом определить, сколько памяти использует этот процесс. Например, в физической памяти будет только одна копия каждой из доступных только для чтения карт /lib/libc-2.7.so, независимо от того, сколько процессов использует ее.

Ответ 4

Как насчет сообщения ужаса кодирования, чтобы ответить на это: http://www.codinghorror.com/blog/archives/000393.html

"Размер VM: сколько из менее часто используемой памяти процессов было выгружено на диск.

Ответ 5

Я не вижу размер виртуальной машины в диспетчере задач Windows, Whatup Gold имеет размер виртуальной машины в своем диспетчере задач - вы имеете в виду это? в этом случае я верю, что он относится к общей сумме, доступной для VM