5

Я уже знаю, что вызывает это - это драйвер для FancyCache, который я установил сам.

Но, как вы видите, на скриншоте ничего не говорит мне об этом. Я просто случайно знаю.

Итак, вопрос в том, если бы я не знал об этом, как бы я выяснил, что потребляет так много моей оперативной памяти?

(Для справки: в настоящее время используется 1,7 ГБ, а "недостающее" количество - для FancyCache - 512 МБ. Ясно, что лишние полгигабайта нигде не отображаются, как я вижу ниже.)

Скриншот

2 ответа2

1

На самом деле, похоже, что я был неправ; есть способ контролировать распределение памяти драйверами устройств, используя Driver Verifier. Этот инструмент встроен во все текущие версии Windows. Хотя он был разработан и задокументирован для программистов для отладки проблем с драйверами устройств, похоже, нет причин, по которым вы не могли бы использовать его, чтобы найти, какой драйвер устройства использует "недостающую" память.

Вы можете вызвать диспетчер проверки драйверов, просто набрав "верификатор" в меню "Пуск" или в командной строке. Вам нужно будет запустить его с повышенными привилегиями, т. Е. Нажав control-shift-ENTER в меню "Пуск" или запустив его из командной строки с повышенными привилегиями. Опция "Создать стандартные настройки" должна быть подходящей; затем вы можете выбрать драйверы для мониторинга (в основном любые драйверы, к которым вы относитесь с подозрением; все драйверы сторонних производителей часто являются разумным выбором). Применяются параметры проверки по умолчанию, включая отслеживание пула. Поскольку интересующая вас память уже выделена, вам нужно перезагрузиться.

После перезагрузки снова запустите диспетчер проверки драйверов и выберите "Показать информацию о проверенных драйверах". Нажимайте кнопку "Далее", пока не перейдете на страницу «Счетчики, специфичные для каждого из проверенных в настоящее время драйверов», и просмотрите драйверы, пока не найдете тот, у которого много выделенной памяти. Надеюсь, это будет драйвер для FancyCache.

Поскольку режим ядра является режимом ядра, я не думаю, что Driver Verifier всегда будет работать; это зависит от водителей, следуя правилам, по крайней мере, приблизительно. Вероятно, существуют разные странные методы, которые драйвер мог бы использовать для выделения памяти, чтобы избежать счетчиков Driver Verifier. Но это должно работать большую часть времени.

0

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

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

В любом случае, результат заключается в том, что управление памятью в современных ОС является ужасно сложным, поэтому, когда вы добавляете драйвер системного фильтра, который использует половину гигабайта в качестве кеша, и он не отображается в сторонней утилите списка процессов, как вы могли ожидать как приложения обычно появляются, не удивляйтесь и не расстраивайтесь - это просто так :)

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