Статьи Windows 8 Сокращение использования памяти во время выполнения в Windows 8

Сокращение использования памяти во время выполнения в Windows 8

PDF Печать

Ключевые принципы разработки Windows 8 - это оптимизация использования базовых показателей, таких как использование оперативной памяти. При создании Windows 8 разработчики стремились значительно снизить требования к памяти. В современных условиях, когда пользователи хотят одновременно запускать все больше и больше приложений или использовать системы всего с 1 или 2 ГБ памяти эта проблема очень актуальна.


Использование памяти во время выполнения в операционной системе Windows 8 — это важный фактор для определения требований к системе Windows 8, а также расширенного диапазона устройств, на которых будет использоваться операционная система Windows 8. Новая операционная система разработана для устройств, основанных на технологии SoC, для которых характерно низкое энергопотребление. Это делает задачу обеспечения большого объема памяти, доступной нескольким одновременно выполняющимся приложениям, и общей «отзывчивости» устройств, еще более важной.

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


Цель использования оперативной памяти в Windows 8

В самом начале разработки операционной системы Windows 8, целью было обеспечения соответствия тем же системным требованиям, которые были установлены для Windows 7. При сохранении указанных требований будет даже лучше, если мы сможем предоставить еще больше ресурсов для приложений. Все это для того что бы люди, работающие на оборудовании «эпохи» Windows 7, получили возможность простого обновления имеющихся компьютеров до Windows 8 и смогут воспользоваться преимуществами доступных в этой операционной системе функциональных возможностей.

Задача для Windows 8 заключалась во внедрении новых функций одновременно с поиском возможностей для снижения объема памяти, используемой как существующими компонентами, так и всей системой в целом.


Сравнение Windows 7 и Windows 8 по использованию памяти

Самым простым способом приблизительного сравнения использования памяти в операционных системах Windows 8 и Windows 7 является установка обеих этих систем на компьютере с 1 ГБ ОЗУ (минимальное требование к объему ОЗУ) и сравнение их в условиях многократных перезагрузок и некоторого периода неактивности.

Диспетчер задач Windows содержит основное представление памяти системы в виде статистических данных по используемой памяти. На приведенных ниже рисунках сравнивается использование памяти. Первый рисунок соответствует работе Windows 7 в режиме ожидания, а второй — работе Windows 8 на том же самом устройстве.

Операционная система Оперативная память
Windows 7 SP 1
404 Mb
Windows 8 281 Mb

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

В качестве дополнительного эксперимента перейдите на тестовом компьютере в диспетчер устройств и отключите видеоадаптер (выгрузите графический драйвер). В таком режиме эксплуатация компьютера, как правило, не осуществляется, но это позволяет получить еще более точные сведения об использовании памяти самой операционной системой Windows. При отключенном графическом драйвере через некоторое время простоя объем используемой памяти на указанном выше компьютере опускается ниже 200 МБ.

ПРИМЕЧАНИЕ. Для операционной системы Windows 8 чистая установка также содержит расширенную технологию Защитник Windows, которая впервые включает в себя полный набор антивредоносных возможностей и также оптимизирована для использования памяти и ресурсов.


Сокращение использования памяти в Windows 8

Было внесено множество изменений, направленных на минимизацию использования памяти операционной системы в Windows 8. Вот несколько областей, которые позволили значительно сократить использование памяти:


Комбинирование памяти

В компьютере многие части памяти имеют одинаковое содержимое. Наличие избыточных копий данных в памяти системы дает нам возможность сократить объем используемой памяти даже для служб и компонентов ОС.

Приложения иногда выделяют память для последующего использования и инициализируют ее всю с использованием одного значения. Такое приложение может никогда так и не воспользоваться этой памятью, так как она может быть зарезервирована для функциональной возможности, не востребованной пользователем. Если такие операции выполняются несколькими приложениями, запущенными одновременно, в системе появляются избыточные копии памяти.

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


Изменения и ограничения для служб Windows 8

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

1. Запускается служба.
2. Служба выполняет необходимые операции.
3. Некоторое время служба работает в режиме ожидания, чтобы убедиться, что все необходимые операции выполнены.
4. Служба завершает работу.

Функции Plug and Play, Центр обновления Windows и служба инфраструктуры драйверов пользовательского режима в операционной системе Windows 8 запускаются по триггерам в отличие от операционной системы Windows 7, где эти службы работали постоянно.

Конечно же, мы добавили в операционную систему Windows 8 множество новых функциональных возможностей и нового кода. Некоторые из этих возможностей упакованы в форме новых служб. Две из этих новых служб запускаются автоматически, все остальные запускаются вручную или по триггеру.


Та же производительность при меньшем объеме памяти

В рамках запуска приложений и осуществления самообслуживания системой Windows данные и файлы программ загружаются с диска в основную память. Во время разработки Windows 7 и Windows 8 были проанализированы участки (страницы) памяти во время нормальной работы и частоту обращения к ним. Идея заключается в том, что если уж вам необходимо выделить участок памяти, то лучше использовать его (обращаться к нему) часто. Если вы обращаетесь к этой памяти редко, но она все равно нужна, объедините ее с чем-то другим.

После выпуска Windows 7 была проделана аналогичная методика к нескольким компонентам нижнего уровня Windows, появившимся на заре эры NT (начало 1990-х годов). Эта работа включала в себя перестроение кода и изменение структур данных для полного разделения «горячих» участков памяти (к которым обращаются часто) и «холодных» участков. Уплотнив и объединив «горячие» участки, мы смогли снизить общий объем памяти, требуемый во время выполнения.

Учитывая природу таких изменений (низкоуровневые компоненты ОС), Майкрософт хотела завершить работу как можно скорее, чтобы обеспечить больше времени для испытания внесенных изменений. На данный момент эти изменения присутствуют в Windows 8 уже почти 2 года, и тысячи сотрудников корпорации Майкрософт используют данный продукт в своей повседневной работе. Благодаря этому мы получили согласованные результаты, показывающие сокращение использования памяти на среднем компьютере на десятки мегабайт.


Отложенная инициализация рабочего стола

В отношении памяти был учтен тот факт, что существует некоторый набор устройств, на которых пользователи почти все время будут находиться в пользовательском интерфейсе в стиле Metro, дающем ощущение погружения. В данном случае операционная система Windows 8 инициализирует компоненты ОС, уникальные для данной настольной среды, по необходимости. Это представляет собой еще одну возможность сокращения использования памяти (приблизительно на 23 МБ). (Обратите внимание на то, что диспетчер задач запускается на рабочем столе, поэтому указанные выше значения для памяти включают в себя объем памяти, используемый этим диспетчером.)


Более детализированное назначение приоритетов памяти

В Windows 8 используется улучшенная схема назначения приоритетов для памяти, выделяемой приложениям и системным компонентам.

Например, антивирусные программы выполняют разнообразные проверки файлов при их открытии другими программами. Память, выделяемая антивирусной программой для проверки сигнатур вирусов, обычно используется один раз, то есть ее повторное использование маловероятно. В Windows 7 такая память обрабатывается как имеющая одинаковый приоритет с другой памятью в системе (например, с памятью, выделенной для запущенного экземпляра программы Microsoft Excel). Если памяти становилось недостаточно, операционная система Windows 7 могла удалить память, которая использовалась для обеспечения оперативного реагирования другого приложения (например, Excel), что снижало скорость реагирования системы.

В операционной системе Windows 8 любая программа имеет возможность выделить память «низким приоритетом». Это важный сигнал для операционной системы Windows, благодаря которому в условиях нехватки памяти Windows может удалить такую память с низким приоритетом, не затрагивая остальную память, требуемую для обеспечения высокой скорости реагирования системы.

 

Комментарии 

 
+1 #1 Андрей 28.10.2011 10:29
Кажется фантастикой, пока лично не увижу не поверю!
Цитировать
 

Добавить комментарий

Защитный код
Обновить