- PVSM.RU - https://www.pvsm.ru -

Некоторые системные файлы Windows забиты мусором метаданных от Adobe

Некоторые системные файлы Windows забиты мусором метаданных от Adobe - 1
Доля мусора Adobe XMP в системных файлах Explorer.exe и ApplicationFrame.dll

Объём системных файлов Windows вырос с 250-350 МБ в Windows 98 до 700-800 МБ в Windows XP, а затем до 10-15 ГБ в Windows 7 и продолжает расти. Если вы задавались вопросом, почему дистрибутив Windows 10 занимает так много места на диске, а система потребляет так много оперативной памяти (по сравнению с Linux), то знайте, что маленькая, очень маленькая часть вины за это лежит на компании Adobe. Именно Adobe разработала и продвигает технологию Extensible Metadata Platform (XMP) [1], которая раздувает размер файлов (например, PNG), а затем эти раздутые файлы PNG включаются в состав системных бинарников Windows.

Доля XMP невелика в общем объёме дистрибутива Windows 10 (всего лишь 5341271 лишний байт [2]), хотя в отдельных файлах значительная часть занята лишними метаданными. И это не какие-то цифровые подписи от крякнутой программы Sound Forge, с помощью которой создавались системные WAV-файлы для Windows 95 [3], а совершенно ненужные и неинформативные метаданные PNG.

Что такое Adobe XMP? Попросту говоря, эта платформа метаданных, которая позволяет запихивать разнообразную информацию в файлы форматов PNG, GIF, JPEG, PSD, TIFF и многих других. Сама платформа позволяет разным программам обмениваться данными через XMP. То есть одна программа может сохранить туда, например, цветовой профиль, а другая программа извлечёт его. В эти контейнеры внедряют различные заголовки, идентификаторы, координаты GPS, цветовую информацию и прочее.

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

В формате XML эти данные занимают довольно много места. Кроме того, они потребляют ресурсы CPU при парсинге XML во время обработки файлов.

Некоторые системные файлы Windows забиты мусором метаданных от Adobe - 2

Программист и пользователь Windows 10 Рафаэль Ривера (Rafael Rivera) заинтересовался: а сколько же на самом деле мусора Adobe XMP в разных файлах? Чтобы ответить на этот вопрос, он написал утилиту eoraptor [4], исходный код которой опубликован на Github.

Рафаэль говорит [5], что очень удивился, когда программа нашла огромное количество мусора XMP даже в системных файлах Windows 10! Он писал программу вовсе не для анализа этого детища Microsoft, а для быстрого изучения графических файлов. Но выяснилось, что и разработчики Microsoft небезгрешны — и внедряют ненужную информацию даже в системные файлы!

Например, системный Проводник (Windows Explorer), который загружается в память при старте операционной системы, на целых 20% состоит из мусора. Или взять другой системный файл ApplicationFrame.dll, который тоже загружается в память на старте системы — он отвечает за заголовки и рамки окон приложений. В ней ненужный XML-контент занимает 41% всего объёма библиотеки!

Рафаэль Ривера пишет, что содержимое XMP неизбежно проникает в разные системные компоненты, связанные с графикой, программы для просмотра изображений и связанные компоненты.

Эта проблема кажется пустяковой, но на самом деле показывает некоторую неоптимизированность операционной системы. Лишние компоненты в системных файлах немножечко сказываются на всех аспектах производительности ОС: на времени загрузки, на размерах образа и занимаемом месте на диске после установки системы, на объёме обновлений, на валидации при исполнении файлов с цифровой подписью Authenticode и т. д. Что характерно, в Microsoft есть отдел, который занимается оптимизацией производительности Windows. По идее, это должно быть в сфере его компетенции. Именно такие вещи они должны бы отслеживать.

Microsoft может довольно быстро и просто исправить ситуацию, просто сжав все изображения PNG, которые входят в состав системных файлов. Благо существует много утилит, которые оптимизируют PNG без потери качества, эффективно удаляя оттуда ненужные метаданные. Возможно, компания проведёт такую оптимизацию и обновит системные файлы с ближайшим билдом.

А сейчас приходится констатировать, что работа по оптимизация операционной системы в Microsoft поставлена не на высшем уровне или у разработчиков есть какие-то причины сохранять метаданные XMP в системных файлах. Наверное, им стоит брать пример со своих коллег из группы разработки браузера Microsoft Edge. Они уже провели оптимизацию всех файлов: избавились от лишнего мусора в PNG с помощью PNGDistill [6], а затем дополнительно сжали бинарники с помощью алгоритма Google ZopFli [7].

Менеджер программы Microsoft Internet Explorer Эрик Лоуренс недавно рассказывал [8] о проведённой оптимизации.

Каждый владелец сайта может сэкономить трафик, просто обработав свои файлы PNG утилитой PNGDistill (модуль на Python [9]).

Автор: alizar

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/windows/253801

Ссылки в тексте:

[1] Extensible Metadata Platform (XMP): http://www.adobe.com/devnet/xmp.html

[2] 5341271 лишний байт: https://gist.githubusercontent.com/riverar/f4a56b91580af1bd3cf4dfacc3733bc3/raw/8f35e3def3173ded72c5715e5af37e830b2a639f/results.txt

[3] цифровые подписи от крякнутой программы Sound Forge, с помощью которой создавались системные WAV-файлы для Windows 95: https://web.archive.org/web/20060721090521/http://techrepublic.com.com/5208-11183-0.html?forumID=89&threadID=173539&messageID=1765547

[4] eoraptor: https://github.com/riverar/eoraptor

[5] говорит: https://www.thurrott.com/windows/109962/windows-bloated-thanks-adobes-extensible-metadata-platform

[6] избавились от лишнего мусора в PNG с помощью PNGDistill: https://textslashplain.com/2015/06/16/optimize-pngs-with-pngdistill/

[7] Google ZopFli: https://github.com/google/zopfli

[8] недавно рассказывал: https://textslashplain.com/2017/04/24/finding-image-bloat-in-binary-files/

[9] модуль на Python: https://pypi.python.org/pypi/PngDistill/

[10] Источник: https://geektimes.ru/post/288590/