2

В настоящее время я пишу отчет о приложении и хочу узнать, как оно использует память. В Windows 10 есть приятная функция, которая сжимает память, которая не обрабатывается рабочими наборами, для того, чтобы больше управлять и избежать обмена, что повышает общую производительность (я думаю, что она также существует в Linux).

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

2 ответа2

0

Подробные измерения памяти можно выполнить с помощью Windows Performance Toolkit. Здесь вы можете отслеживать вызовы VAlloc, чтобы увидеть распределение памяти в вашем инструменте.

Также RAMMAp может быть использован для захвата снимка использования памяти вашей Windows.

Но ни один из инструментов не может определить, сколько данных сжато. Возможно, Microsoft добавляет это в обновление Windows 10 Redstone.

0

Единственная память, которую сжимает Windows 10, находится в процессе "Система". Счетчики рабочего набора, которые вы видите для других процессов, не отражают никакого сжатия, и не произошло. Таким образом, вы можете использовать счетчики рабочего набора для каждого процесса, как всегда.

Память в рабочем наборе процессов не может быть сжата, поскольку что-либо в рабочем наборе процесса может ссылаться без возникновения ошибки страницы. Поэтому у менеджера памяти не будет возможности распаковать его. Обычный код в процессе будет ссылаться (или пытаться выполнить!) сжатое содержимое памяти, и это просто не сработает. Поэтому счетчики рабочего набора процесса все еще означают то, что они всегда имели в виду.

Что касается "системного" процесса ... Сжатая память - это сжатая версия страниц оперативной памяти, которые были в измененном списке страниц. Страницы помещаются в MPL, когда давление ОЗУ требует, чтобы было доступно больше ОЗУ. Это страницы, содержимое которых было изменено в рабочем наборе процессов, поэтому перед тем, как их можно будет сделать доступными для другого использования, их содержимое должно быть скопировано в "резервное хранилище" - для личных страниц процесса это обычно файл подкачки.

В предыдущих версиях Windows они были записаны в файл подкачки и затем перемещены из MPL в список ожидания. Оттуда они могут быть возвращены в процесс, который их потерял, или же "перенаправить" - использовать в качестве "доступной" оперативной памяти для каких-то других нужд. Подход Windows 10 состоит в том, чтобы вместо этого сжать их содержимое и спрятать сжатые данные в частном адресном пространстве "системного" процесса.

Там нет увеличения использования оперативной памяти по сравнению с предыдущими версиями. На самом деле есть снижение. В прошлом эти страницы были бы в резервном списке в оригинальной - не сжатой - форме. Под Windows 10 они находятся в системном процессе в сжатом виде. Поэтому они занимают меньше места.

Недостатком является то, что процесс, который "потерял" эти страницы, не может просто вернуть страницы обратно в свой рабочий набор (как они могут быть из измененного или резервного списка страниц), потому что их содержимое необходимо распаковать перед использованием. Декомпрессия обрабатывается по обычному пути мягкого разрешения ошибки. Однако распаковка занимает намного меньше времени, чем чтение материала из файла подкачки (даже на SSD) в предыдущих версиях.

Во времена нехватки ОЗУ эти измененные страницы можно сделать доступными для другого использования, записав их содержимое в файл подкачки, как и в предыдущих версиях. Но в отличие от предыдущих версий, в Windows 10 их содержимое уже сжато к тому времени, когда это происходит. Таким образом, они занимают меньше времени для записи и меньше места в файле подкачки. Если впоследствии их нужно будет прочитать обратно из файла подкачки, опять же, они будут читать меньше времени просто потому, что сжатие означает, что для чтения меньше данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .