- PVSM.RU - https://www.pvsm.ru -
Доля мусора 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 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/
Нажмите здесь для печати.