Нет ничего удивительного…

30 октябрь, 2012 - 13:55Игорь Дериев

…в том, что Windows 8 не подстегнула продажи DRAM. На мой взгляд, все как раз закономерно, только причина не в рыночных трендах (или не только в них).

Дело в том, что обычно очередные версии Windows повышали потребность в оперативной памяти. Соответственно, ее больше устанавливали в новые компьютеры и закупали для апгрейда имеющихся систем. Исключений было только два.

Первое – Windows 7. Но надо вспомнить, что эта ОС была в спешном порядке выпущена после провальной Vista. И поскольку последняя не успела получить большого распространения, то фактически именно Windows 7 стала преемницей Windows XP, со всеми вытекающими.

Второе – нынешняя Windows 8. Формально спецификации остались теми же, что и у Windows 7. Однако на всех технических мероприятиях, начиная с прошлогодней конференции BUILD, Microsoft демонстрирует, что реально Windows 8 потребляет памяти даже меньше. Соответственно, дополнительная память будет требоваться, в основном, лишь в случае апгрейда с Windows XP – а пользователи, частные и корпоративные, остающиеся с этой ОС по сей день, несомненно, отличаются прагматизмом и завидной выдержкой :)

Так что, чему удивляются эксперты и аналитики – не очень понятно. Гораздо интереснее разобраться, какие именно ухищрения позволили Microsoft добиться такого эффекта. Оказывается, ничего революционного, в основном совершенствование имеющихся механизмов.

Прежде всего, был оптимизирован унаследованный код, уходящий корнями в первые NT (а это, между прочим, 20 лет). Одно только это дало экономию десятков мегабайтов. Также из архитектуры Windows 8 исчезли 13 системных служб, а еще какое-то количество перестало запускаться автоматически, перейдя на модель работы по запросу. В результате «голая» Windows 8 сразу после загрузки потребляет ощутимо меньше памяти, чем Windows 7 – в примерах самой Microsoft, до 30%.

Ряд специальных механизмов также действует уже в процессе эксплуатации системы. В Windows 8 появилась возможность приоритезации памяти. Корректно написанное приложение может назначать низкий приоритет областям памяти, предназначенным для каких-то второстепенных задач. В результате, они будет освобождаться при первой же потребности/возможности.

Впрочем, ОС не полагается на культуру разработчиков. Еще в предыдущих версиях появились механизмы дедубликации памяти, основанные на разделяемых страницах. Грубо говоря, вместо того, чтобы загружать для нового приложения очередные копии «популярных» библиотек или файлов данных, ему просто предоставляются ссылки на уже существующие экземпляры. Копии будут созданы автоматически при попытке изменения этих областей.

Раньше эта техника распространялась только на отображаемые в память файлы, но в Windows 8 охватывает фактически всю RAM. Грубо говоря, ОС периодически инвентаризует страницы памяти и объединяет идентичные. Источником дополнительной экономии могут выступать, к примеру, программные буферы, инициализируемые одинаковыми значениями и остающиеся незанятыми.