Спецпроекты

Новая Windows 10 заставит Edge и Google Chrome пожирать меньше памяти

3071
Интернет Интернет-ПО Техника
Улучшенный механизм работы с динамической памятью, появившийся в Windows 10 с выходом нового релиза, позволит сократить потребление оперативной приложениями. Разработчики браузера Edge, имеющего общую кодовую базу с Google Chrome, оценивают снижение потребления памяти при переходе на новый механизм на уровне 27%. Создатели Chrome, в свою очередь, обещают экономию «сотен мегабайт».

Windows 10 2004 лучше управляет памятью

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

Microsoft в официальном блоге, посвященном Windows, сообщила, что уже использует новую возможность при разработке своего фирменного браузера Edge. Он, напомним, как и Google Chrome, теперь базируется на движке Chromium. Согласно результатам ранних тестов, сокращение потребления памяти Edge может достигать 27%.

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

Google Chrome может «съедать» гигабайты оперативной памяти даже при небольшом числе открытых вкладок

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

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

Новая куча, и как ее использовать

В последнем обновлении Windows 10 (версия 2004), развертывание которого стартовало в конце мая 2020 г., более современная и эффективная реализация так называемой кучи – «сегментная куча» (Segment Heap) – стала доступна классическим (win32) приложениям, то есть программам, работающим исключительно на аппаратных платформах x86 и x64, коих для Windows 10 большинство.

Ранее форсировать использование Segment Heap могли только разработчики универсальных приложений Windows (UWP, Universal Windows Platform apps), то есть работающих на любой аппаратной платформе и устанавливаемых из магазина Microsoft Store.

Кучей (Heap) называют способ организации динамической памяти компьютера. Операционная система определяет под кучу некоторую область оперативной памяти, часть которой может быть выделена какой-либо программе по ее запросу непосредственно в процессе работы. Применительно к браузерам: при открытии сайта в новой вкладке память для размещения веб-страницы будет взята именно из кучи.

Для того, чтобы приложение начало использовать Segment Heap, разработчику необходимо в файле манифеста программы установить параметр heapType в значение SegmentHeap. На языке XML, который применяется в манифестах, это будет выглядеть следующим образом: "<heapType>SegmentHeap</heapType>".

Манифест приложения в Windows – это текстовый файл, в котором описываются некоторые параметры приложения. К примеру, в манифесте можно указать версии операционной системы, с которыми программа совместима, или необходимый для ее запуска уровень прав пользователя. Манифест помещается внутрь динамической библиотеки (с расширением dll) или исполняемого файла (exe) и анализируется Windows при запуске приложения. В отличие от мобильной ОС Android, где наличие манифеста приложения необходимо для его сборки, разработчики ПО под Windows могут легко отказаться от его использования.

Функции Tab Freeze и Tab Discard в Google Chrome

В октябре 2019 г. Google начала тестировать функцию Chrome под названием Tab Freeze. Она позволяет браузеру «замораживать» неактивные вкладки, то есть выгружать из оперативной памяти содержимое открытых вкладок, которые не использовались в течение некоторого времени, тем самым экономя ресурсы ПК.

Tab Freeze является результатом развития функции Tab Discard, внедренной в Chrome еще в 2015 г. С ее помощью браузер осуществляет мониторинг открытых вкладок и в случае возникновения дефицита свободной оперативной памяти высвобождает ресурсы, зарезервированные за неиспользуемыми в данный момент веб-страницами. Если же пользователь вздумает обратиться ко вкладке после ее «деактивации», браузер автоматически загрузит ее заново.

Tab Freeze была добавлена в экспериментальную сборку Chrome 79 (Canary) для ОС Windows, macOS, Linux и Chrome OS.