Сколько жрет оперативки виндовс 8
За много лет использования Windows я привык к Диспетчеру задач. Оттуда я убил сотни приложений за плохое поведение. Там же смотрел, кто из них пожирает ресурсы. Пока я не начал работать с машинами, у которых сотни гигабайт памяти, а у приложений соответствующие запросы. В этой статье обсудим, почему Диспетчер задач плохо отслеживает память и что использовать взамен. Во-первых, о механизме выделения памяти в Windows.
tl;dr: Диспетчер задач скрывает информацию о подкачке (paged memory) и виртуальном пространстве процесса. Лучше используйте Process Explorer из комплекта Sysinternals.
При запуске нового процесса ОС присваивает этому процессу непрерывное адресное пространство. В 32-разрядных системах это пространство может составить 4 ГБ, обычно 2 ГБ для ядра, а остальное для процесса. В этой статье проигнорируем использование памяти ядром. В 64-разрядных системах зарезервированная процессом память может вырасти до колоссальных 64 ТБ. Что этот процесс будет делать с несколькими терабайтами памяти, когда у нас на самом деле жалкие 8 ГБ? Сначала нужно понять, что такое зарезервированная и переданная память.
Зарезервированная и переданная память
Не все части этого огромного адресного пространства равны. Некоторые части адресного пространства процесса фактически поддерживаются либо физической оперативной памятью, либо диском (см. ниже). Зарезервированная память считается переданной (Committed), если ОС предлагает вам эту память при попытке её использовать. Остальная часть адресного пространства, а это подавляющее большинство, остаётся доступным для резервирования. То есть не всегда ОС может предложить вам этот блок памяти для использования: она может сделать копию на диске (файл подкачки), например, а может и не сделать. В C++ резервирование памяти осуществляется вызовом VirtualAlloc. Так что переданная память является аппаратно ограниченным ресурсом в ОС. Давайте посмотрим.
Файл подкачки ОС
Файл подкачки — замечательная идея. В принципе, ОС понимает, что некоторые части памяти особо не используются вашим приложением. Зачем тратить на него реальную физическую память? Вместо этого процесс в ядре записывает этот неиспользуемый фрагмент на диск. Пока к нему не обратятся снова, только тогда он вернётся в память.
Для более подробного объяснения, как работает память в Windows, рекомендую лекцию «Тайны управления памятью» Марка Руссиновича.
Здесь много за чем нужно следить и анализировать. К кому обратиться? Конечно, к Диспетчеру задач!
Память в RAM обычно называют рабочим набором (Working Set), в то время как всю выделенную память обычно именуют Private Bytes. Библиотеки DLL вносят путаницу в определения, поэтому пока их проигнорируем. Иначе говоря:
Private Bytes [выделенная память] = рабочий набор + файл подкачки
По умолчанию Диспетчер задач показывает для любого процесса именно рабочий набор:
И это число, на которое я всё время смотрел. Откуда я знал, что в Диспетчере задач информация о переданной памяти находится в колонке Commit Size . Я так и не смог там найти информацию о виртуальной памяти.
Диспетчер задач позволяет добавить информацию о переданной памяти, если щёлкнуть правой кнопкой мыши по столбцам и выбрать соответствующий пункт
К счастью, есть много других ресурсов для отслеживания ресурсов. На каждой машине под Windows установлен PerfMon (Системный монитор), который выдаёт очень подробную информацию о каждом процессе и системе в целом:
Интересно, что Системный монитор умеет фактически исследовать и сравнивать метрики на двух или более компьютерах в сети. Это очень мощный инструмент, но Диспетчер задач, очевидно, удобнее для пользователей. В качестве промежуточного решения рекомендую Process Explorer:
Бум! Visual Studio, чего это ты до сих пор в 32-битном режиме (обратите внимание на его Virtual Size)? Пиковое использование памяти на моём компьютере на уровне 89% от максимума, ещё терпимо. Это пригодится позже.
Дополнение: многие указали на другие удобные инструменты, в том числе VMMap и RAMMap.
К счастью, это не какие-то ненужные мелочи ОС. Актуальная информация о потреблении памяти многократно помогала мне в отладке разных проблем.
Самое главное, это найти нетронутые части выделенной памяти. Данные о подкачке тоже важны: эта память передана, но используется редко или вообще не используется.
Даже если память будет иногда использоваться, важно понимать, что это дорогой ресурс, так что идти по такому пути ни в коем случае нельзя. Здесь появятся и утечки памяти.
По этим причинам я ранее слышал предложение полностью удалить файл подкачки и приравнять выделенную память рабочему набору. Однако это обоюдоострая идея. Тогда ОС не в состоянии сбросить память в случае неправильной работы приложений, которые иногда впустую резервируют память.
Если вы хотите использовать на своем компьютере Windows 8, вам понадобится:
Процессор: 1 гигагерц (ГГц) или выше с поддержкой PAE, NX и SSE2 (подробнее)
ОЗУ: 1 гигабайт (ГБ) для 32-разрядной версии или 2 ГБ для 64-разрядной версии.
Свободное место на жестком диске: 16 гигабайт (ГБ) для 32-разрядной версии или 20 ГБ для 64-разрядной версии.
Графический адаптер: графическое устройство Microsoft DirectX 9 с драйвером WDDM.
Дополнительные требования для использования некоторых функций
*Для использования сенсорных возможностей требуется планшет или монитор с поддержкой мультисенсорной технологии
*Чтобы получить доступ к Магазину Windows для загрузки и запуска приложений, требуется активное подключение к Интернету и разрешение экрана не менее 1024 x 768 пикселей.
*Для привязки приложений требуется разрешение экрана не менее 1366 x 768
*Доступ к Интернету (может взиматься плата поставщиком услуг Интернета)
*Для защищенной загрузки необходима прошивка, которая поддерживает UEFI v2.3.1 Errata B и имеет в базе сигнатур UEFI сертификат центра сертификации Microsoft Windows
*для обеспечения оптимальной производительности некоторых игр и программ может потребоваться графическая плата, совместимая с технологией DirectX 10 или более поздними ее версиями;
*Для некоторых функций необходима учетная запись Майкрософт.
*Для просмотра DVD-дисков требуется отдельное программное обеспечение .
*Лицензия Windows Media Center продается отдельно.
*Для функции BitLocker To Go необходимо наличие USB-устройства флэш-памяти (только для выпуска Windows 8 Профессиональная) .
*Для функции BitLocker требуется доверенный платформенный модуль (TPM) 1.2 или USB-устройство флэш-памяти (только для выпуска Windows 8 Профессиональная) .
*Для клиента Hyper-V требуется 64-разрядная система с поддержкой преобразования адресов второго уровня (SLAT) и дополнительные 2 ГБ ОЗУ (только для выпуска Windows 8 Профессиональная) .
*Для просмотра и записи телепередач в Windows Media Center требуется ТВ-тюнер (только для программы обновления до Windows 8 Профессиональная и пакета Media Center для Windows 8).
*Бесплатный контент интернет-телевидения зависит от расположения. Некоторые виды контента могут предполагать дополнительную плату (только для программы обновления до Windows 8 Профессиональная и пакета Media Center для Windows 8).
У меня сейчас, при открытом браузере, Стиме и плеере - 2 гига из 8 гигов
Но принцип такой - чем больше у тебя оперативки на компе, тем больше её задействуется, чтобы комп работал лучше
Установил себе на ноутбук винду 8.1 . Тех кто будет говорить о том что восьмёрка г*вно, ставь 7 и проблема решена, прошу идти сразу лесом. Раньше то же так считал, но сейчас поставил, и меня всё устраивает более чем. Так вот, поставил, спустя 2 недели обратил внимание что программам явно не хватает оперативочки. Зашёл в свойство систему и увидел такую вещь. ( скриншот приложу ). На компе 4 гб оперативки, а винда схавала себе аж 1.5 гига. Не много ли это? Семёра жрала в разы меньше. Нельзя ли как то, изменить выделяемое для винды количество ОП?
Это нормально, винда сама решает, сколько себе резервировать.
У меня 1,6 из 8Гб занято (при небольшом количестве запущенных приложений)
Ой не неси херню. У меня тоже щас 4 гига и тоже 50 процентов памяти занято. Так это всё браузеры намотали. + был включён видеоредактор. И щас вот я вырубил и уже стало 36 процентов. У тебя тоже наверно чё-то дофига запущено или хз тебя вобще.
введи в поиске msconfig открой его Загрузка-Дополнительные параметры-максимум памяти сними галочку если она стоит
Ну да. Тоже удивляюсь почему после пары часов в опере + пару игр по 20 минут + сериалы у меня 4гб куда уходят.. . Хотя тут скорее проблема в опере.
Любая оперативная система 64 разрядная использует под себя памяти больше. И то что 8 взяла 1,5 гига это не так и много. Счас браузеры едет столько же любые. Так что это все нормально, программисты память не экономят, как это было раньше (про утечки даже и не вспоминают) так как его стало очень много и дешево.
обычно вин 8,1 ест 0.8 гига. По урезай в автозагрузке все что не критично как ты думаешь, он находиться в диспетчере задач. По удаляй не нужные проги, пройдись каспером по дискам чтобы вирусы не шастали или не майнили, отключи службу diagnocting tracking services (отслежка), и в Установка и удаления программ в его пункте Включение и отключение компонентов, отключи IE и то что сам ты думаешь что не надо. Можешь почистить папку Temp в папке Windows и AppData(скрыта, включи показ скрытых папок в виде) Если глубже надо, или ты хочешь что то удалить в системе но TrustedInstaller мешает? То ставь Winaero Tweaker, в нем включи Take Owership и она засветиться. В Параметры папок (для вин 10 параметры проводника) в виде выключи все галочки со словом Скрывать. Очистишь еще и дампы и еще где-то под 50 мб памяти. В Programm Files есть папка которая скрыта, вот для него надо перетянуть на себя права (Take owership). Можешь удалить все то что тебе также не нравиться, рекомендую с переводчиком Bing, Edge и тп. Можешь поставить mem reductor.
В интернете мне доводилось слышать множество гневных комментариев в стиле «Да Windows 7 — полный отстой! Вы посмотрите, как она жрет память!» В доказательство приводятся скриншоты вроде того, что ниже, и опять же — все списывается на «криворуких индусских программистов». Давайте посмотрим, насколько эти наезды на программистов Microsoft обоснованы.
Допустим, вы приобрели компьютер с 8 гигабайтами памяти. Но неужели то, что используется от силы 1 гигабайт, а вся остальная память простаивает — так уж хорошо? С выходом Windows Vista и Windows 7 подход к использованию оперативной памяти кардинально поменялся: теперь ОС пытается использовать всю имеющуюся память максимально эффективно. В частности, в Windows Vista и Windows 7 появилась фича с названием SuperFetch.
Что же такое SuperFetch?
SuperFetch — это системный сервис, запускающийся внутри системного процесса svchost. Код его находится внутри DLL-ки %SystemRoot%\System32\Sysmain.dll. Этот сервис постоянно следит за тем, какие приложения запускает пользователь, и к каким исполняемым файлам и файлам данных они обращаются. Вся эта информация сохраняется в файлах с расширением *.db в каталоге %SystemRoot%\Prefetch. Для чего это все делается? А вот для чего: сервис SuperFetch, имея информацию о том, с какими приложениями пользователь работает наиболее часто — заранее подгружает в память соответствующий код и данные, и, когда пользователь запускает свое приложение — вся необходимая информация уже имеется в памяти, и запуск происходит намного быстрее — потому как нет необходимости считывать информацию с жесткого диска. Особенно это заметно на таких «тяжелых» приложениях, как семейство MS Office, функционал которых может быть «размазан» по десяткам и сотням exe-шников и dll-ок. SuperFetch настолько «умна», что может даже определять предпочтения пользователя в разные дни и время суток — например, то, что в рабочие дни он работает с Word и Excel, а по выходным — играется в Call of Duty, и, соответственно — подгружает в память нужные данные. Соответственно, эта область памяти помечается как «занятая», что и отображается в Task Manager'e, создавая впечатление «утечек памяти». Тем не менее, если вдруг запускается какое-то приложение, требующее выделения памяти — memory manager спокойно освобождает нужное пространство, а по завершении работы приложения память освобождается и данные подгружаются снова.
Если же какое-нибудь приложение, к примеру, завершает свою работу и освобождает память — то SuperFetch обращается к менеджеру памяти с просьбой подгрузить только что выгруженный код и даннные. Процесс этот происходит с маленькой скоростью и с низшим (Very Low) приоритетом, поэтому работа SuperFetch не приводит к падению производительности. Если вы, к примеру, отойдете покурить, а в это время запустится фоновый процесс, которому необходима память (например — антивирусная проверка), то код и данные приложения, с которым вы работали — возможно будут выгружены из памяти. Благодаря же SuperFetch — к тому моменту, когда вы вернетесь с перекура — данные вашего активного приложения будут полностью или частично подгружены обратно в память.
Более того, SuperFetch может обрабатывать режимы гибернации, «спящий режим» и смены пользователя (fast user switching). К примеру, если система уходит в гибернацию — то SuperFetch сохраняет в файл hiberfil.sys код и данные тех приложений, которые, по его мнению, скорее всего будут использоваться после выхода из гибернации. Как это «мнение» формируется? Очень просто — Большой БратSuperFetch смотрит за тобой, и за тем, что ты запускал после выхода из предыдущих гибернаций, и основываясь на этом — может предположить, что в следующий раз при выходе из гибернации ты наверняка запустишь «аську» и откроешь свой любимый браузер, чтобы почитать «хабрахабр». Ну а через часок-другой — откроешь Visual Studio, потому что проект горит, а сроки сдачи — «вчера».
Можно понаблюдать за работой SuperFetch с помощью того же Task Manager'a:
Если какое-то время поюзать Windows Vista/7, то можно заметить, что объем свободной памяти уменьшается. Это происходит из-за того, что SuperFetch стандартный систмный кэш Windows пытаются утилизировать доступную память для кэширования данных с диска. К примеру, если сразу после загрузки Windows запустить Task Manager — видно, что Free Memory — уменьшается, а Cached Memory — наоборот увеличивается. Если же запустить какую-нибудь «жадную до памяти» программу, или же просто запустить копирование большого файла — Free Memory увеличится и график «Physical Memory Usage» резко упадет, потому что система будет освобождать память для запущенного приложения, но потом начнет потихоньку расти — потому что собственно приложение начнет эту память забирать. Однако, со временем SuperFetch будет подгружать в память недавно выгруженные данные, поэтому значение Cached Memory будет расти, а Free Memory — уменьшаться.
Надеюсь, было интересно. Спасибо за внимание. Вопросы и матюки — велком в каменты.
P.S. Подобная фича есть не только в Windows. В частности, есть она и в Linux, и называется Preload. Линуксоиды могут прокомментировать.
Сравниваем Windows 7 или Windows 8.1 на очень слабом железе. Что работает быстрее? Что может дать древнему ноутбуку второе дыхание и сэкономить ресурсы - читайте в этом блоге.
В своем блоге про Windows Embedded Standard 7 я подробно описал эту замечательную операционную систему, протестировав ее на своем железе в реальных условиях эксплуатации.
Но, так как меня последнее время очень интересует ОС Windows 8.1, которую многие, как я считаю, незаслуженно забыли и пропустили, я захотел сравнить ее с Windows Embedded Standard 7.
Опять же, в реальных условиях, на очень слабом железе.
реклама
Недолго думая, я сделал образ системы и приступил к тестам. Я использовал WinRAR 4.50, EVEREST Ultimate Edition 4.60.1562 Beta и штатные утилиты ОС Windows. Вот, что у меня получилось.
После загрузки Windows Embedded Standard 7 потребляет около 760-900 МБ оперативной памяти. Загрузка процессора в простое незначительная.
Вот такие процессы работают на чистой системе.
На диске свежеустановленная система с минимальным файлом подкачки занимает 12.5 ГБ.
Теперь тест производительности WinRAR, 1421 КБ/сек. Ужасающе медленный ноутбук. Ему далеко даже до десктопных Core 2 Duo, которые большинство пользователей уже списали в утиль.
реклама
Теперь несколько тестов из EVEREST Ultimate Edition 4.60.1562 Beta.
Чтение из памяти - 4968 МБ/сек.
CPU Queen - 8440.
CPU FotoWorxx - 4843.
реклама
FPU Julia - 2724.
Ну что же, тесты проведены, скриншоты сохранены, делаю бэкап образа системы и заливаю на флешку образ Windows 8.1. Для такого древнего железа флешка должна быть записана как MBR, а не UEFI.
Установка Windows 8.1 происходит быстрее, чем Windows Embedded Standard 7 и просто Windows 7 Professional.
Посмотрим же, что она покажет в тестах. Не забывайте, что ноутбук настолько медленный, что уже с трудом осиливает интернет-серфинг. Для него каждый сэкономленный мегабайт ОЗУ - это важно.
Запуск диспетчера задач преподносит первый сюрприз. Система по умолчанию потребляет всего лишь 605 МБ оперативной памяти! Это впечатляет, даже ОС Windows 10 1607 с вырезанным всем, что только можно, потребляла больше.
Вот список процессов. Учтите, что на Windows 8.1 уже вполне приличный встроенный антивирус, на антивирус из Windows 7 я бы не стал полагаться.
На диске занимает всего лишь 8.9 ГБ! Даже меньше, чем Windows Embedded Standard 7. И это не урезанная система, а полностью функциональный образ. Да еще со всеми установленными обновлениями!
Интересно, сколько же места займут Lite-сборки на основе Windows 8.1.
Теперь можно переходить к тестам.
WinRAR - 1428 КБ/сек. На Windows Embedded Standard 7 было 1421 КБ/сек.
Теперь тесты из EVEREST Ultimate Edition 4.60.1562 Beta. Результаты Windows Embedded Standard 7 я буду писать в скобках.
Чтение из памяти - 4976 МБ/сек, (4968 МБ/сек).
реклама
CPU Queen - 8454, (8440).
CPU FotoWorxx - 4791, (4843).
FPU Julia - 2704 (2724).
Что можно сказать по тестам? Идут ноздря в ноздрю, но Windows 8.1 занимает меньше места на жестком диске и в оперативной памяти. Для такого слабого железа - это очень важно!
По субъективным ощущениям - улучшился отклик системы. Скорость загрузки и выключения возросла. Не забываем, что у Windows 8.1 работает приличный антивирус и есть куча удобных UWP приложений.
Да и в целом Windows 8.1 смотрится вполне современно и мало отличается от Windows 10.
Много полезных мелочей уже есть в ней, которые нужно доустанавливать в Windows 7.
Например: работа с .iso файлами, автоматическое сохранение скриншотов, разнообразный UWP софт, который нужен всегда, типа календаря и будильников.
Я решил оставить на древнем ноутбуке именно Windows 8.1. Она производит очень приятное впечатление.
Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Читайте также: