Оптимизация Windows 8, связанна с управлением памятью
Одним из ключевых принципов проектирования Windows 8 являлось общее снижение требований к объёму используемой оперативной памяти со стороны системы ядра.
🕛 10.10.2011, 10:00
Windows 8 получила значительный набор оптимизаций, связанных с управлением оперативной памятью. Эти оптимизации должны улучшить отзывчивость системы на ряде устройств, включая устройства с архитектурой SoC, должны позволить более плавно работать нескольким одновременно запущенным приложениям и должны увеличить срок службы батареи за счёт минимизации потребления энергии."Мы внесли сотни специфических изменений для минимизации объёма оперативной памяти, используемой ОС, - поведал Билл Карагунис, руководитель одной из групп команды Microsoft, занимающейся производительностью. - Windows 8 обладает улучшенным алгоритмом приоритизации выделения памяти, запрашиваемой приложениями и компонентами системы. Это означает, что Windows может принимать более оптимальные решения о том, какую область памяти оставить занятой, а какую поскорее освободить [и переместить в файл подкачки]".
Гранулярная приоритизация памяти позволяет Windows 8 забирать ресурсы у исполняемых приложений и перераспределять их оптимальным образом, не влияя на отзывчивость самих приложений. Это стало возможным благодаря механизму, позволяющему программам выделять себе память с низким приоритетом, таким образом сообщая ОС о том, что эта память может быть использована для более важных нужд, если таковые будут иметь место.
Другим примером оптимизации управления памятью является устранение проблемы дублирующихся данных при помощи комбинирования памяти. Для некоторых приложений Windows 8 оказывается в состоянии комбинировать избыточные копии данных, тем самым освобождая память.
"Комбинирование памяти представляет собой технику, при помощи которой Windows эффективно оценивает содержимое оперативной памяти во время своей обычной работы и определяет наличие дублированных данных во всей доступной памяти. [После обнаружения] Windows освободит области, занимаемые дубликатами, и оставит только одну копию данных, - поясняет Карагунис. - Если приложение в будущем попытается в эту память что-то записать, Windows предоставит ему отдельную копию этой области памяти. Всё это происходит внутри диспетчера памяти и никак не затрагивает работу приложения. Этот подход позволяет освободить десятки и даже сотни мегабайт памяти (в зависимости от количества одновременно запущенных приложений)".
Ещё одним способом, при помощи которого Windows 8 может сэкономить память, является консолидация редко используемых областей памяти. Только благодаря улучшенному алгоритму консолидации памяти Windows 8 может сэкономить десятки мегабайт на среднестатистическом компьютере, освобождая память для других программ.
Оптимизации также затронули и работу сервисов. По информации от Microsoft, 13 сервисов в Windows 8, которые на предыдущих системах работали всё время, были удалены, некоторые сервисы были переведены на ручной запуск, другие - на запуск по требованию.
Отсутствие автоматической загрузки рабочего стола тоже позволяет освободить память.
"С точки зрения экономии памяти, мы воспользовались тем обстоятельством, что на некотором наборе устройств пользователи почти всё время будут пользоваться только интерфейсом Metro. В этих случаях, Windows 8 будет инициализировать компоненты системы, относящиеся к среде рабочего стола, только в случае необходимости. Это ещё один источник экономии памяти, который помогает сэкономить сейчас приблизительно 23 мегабайта", - добавил Карагунис.
Энтузиасту с сайта Softpedia удалось загрузить Windows 8 под виртуальной машиной, имеющей 64 МБ оперативной памяти. Однако нельзя сказать, что при работе на такой конфигурации система была работоспособна - до стартового экрана с мозаикой Metro-приложений энтузиаст добрался только через 10 минут после ввода данных учётной записи.