Размер частного рабочего набора зависит от имени приложения - PullRequest
2 голосов
/ 19 февраля 2009

Коллега пытался уменьшить объем памяти 32-битного приложения, работающего на Vista 64, и заметил странное поведение в сообщаемом размере частного рабочего набора.

Он внес некоторые изменения и перекомпилировал приложение. Затем он запустил приложение и загрузил в файл данных. Диспетчер задач сообщает, что частный рабочий набор составляет 98 МБ. Затем он просто переименовал приложение в «fred.exe», теперь, когда он запускает fred.exe и загружает тот же файл данных, размер личного рабочего набора которого составляет 125 МБ. Переименуйте файл обратно к его первоначальному имени, повторите, и личный рабочий набор вернулся к 98 МБ.

Кто-нибудь знает, что вызывает это?

Ответы [ 3 ]

2 голосов
/ 20 февраля 2009

Vista делает некоторые умные вещи с кэшированием приложений (SuperFetch). Насколько я понимаю, это делается по имени приложения.

В вашем случае я предполагаю, что Vista обнаружила, что «originalName.EXE» никогда не извлекал выгоду из большого рабочего набора, поэтому обрезка до 98 МБ помогает другим приложениям. С другой стороны, новый файл "fred.exe" все еще получает лечение по умолчанию.

2 голосов
/ 19 февраля 2009

Обычно это происходит в полнолуние.

Помнил ли он, чтобы принести в жертву курицу Богу памяти Бааль-зе-Була?

1 голос
/ 10 мая 2009

«Рабочий набор» приложения - это (примерно) объем виртуальной памяти приложения, который в настоящее время доступен для использования. Это значение колеблется по многим причинам в зависимости от того, что еще происходит в машине, и на самом деле не отражает фактический объем памяти процесса. Это, конечно, не зависит от имени исполняемого файла.

С другой стороны, значение «частных байтов» является наиболее полезным при измерении объема памяти приложения. Это значение отражает общее количество запросов, сделанных приложением на выделение большего объема памяти, и не зависит от того, сколько рабочего набора приложения произошло в тот момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...