Со времен Windows XP установщикам Windows (MSI-файлам), в том числе установщикам InstallShield (которые являются лишь начальной загрузкой для MSI), понадобилось в пять раз больше времени для удаления приложения, чем другим установщикам. То же правило касается и установки.
Почему они все еще так долго, и почему люди все еще используют MSI для установки? Например:
Удаление VLC - занимает около 5 секунд.
Удалить XYZ - запускает «Подготовка к удалению ...» с 15-секундной задержкой.
Все, что он делает, это удаляет файлы и очищает реестр (который может включать регистрации COM), так почему же это занимает так много времени?
Do you want to allow the following program from an unknown publisher to make changes to this computer?
скрывалось в фоновом режиме.Ответы:
Сначала установщик Windows систематически создает точку восстановления системы, что является довольно медленной операцией.
Также из статьи, озаглавленной, соответственно, «Установщик Windows отстой» , выдержка:
Я также добавлю, что установщик Windows хранит всю информацию в реестре, который не является самой быстрой базой данных в мире.
источник
dpkg
используется для его базы данных пакетов (хотя, по общему признанию, dpkg не хранит в ней все ):/var/lib/dpkg/status
это простой текстовый файл, в котором перечислены все пакеты, которые были когда-то установлены, и с тех пор не были очищены - и я Я даже не уверен, что он всегда пропускает очищенные.dpkg
не лжет мне с индикаторами выполнения, которые показывают «Оставшееся время: 0 секунд» в течение двух минут, хотя ...Установщик Windows действительно имеет репутацию медленного. Есть несколько вещей, которые способствуют этому, и я собираюсь рассмотреть их ниже. Но, в конечном счете, следует спросить себя, действительно ли одна, две или три минуты вызывают споры при установке и удалении программного обеспечения. Я занимаю больше времени, чем просмотр телеканалов :)
Реестр
Это виновник номер один. Установщик Windows интенсивно использует реестр для своих операций. По мере развития вашей системы, при установке и удалении приложений, а также при увеличении размера или фрагментации реестра MSI будет работать медленнее. Это же приложение будет устанавливаться и удаляться гораздо быстрее при первоначальной установке Windows, чем в зрелой системе. Решение здесь состоит в том, чтобы попытаться сохранить реестр чистым и дефрагментированным.
Для очистки реестра используйте один из множества доступных инструментов. Но для дефрагментации реестра я не могу рекомендовать достаточно NTREGOPT для внутренней оптимизации улья и PageDefrag для физической дефрагментации файлов.
Причина, по которой MSI может замедлить работу реестра, связана с тем, как MSI использует его. Установщик Windows использует реестр для отслеживания того, какие продукты установлены, какие компоненты и в каком месте он был установлен. Исходные идентификаторы GUID используются в сжатом формате. Информацию об установках для
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
каждой машины можно найти по адресу , тогда как данные о пользователях находятся рядом с ней наHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
ключе и под ключом с SID пользователя.Оба эти ключа могут быть довольно большими и содержать многочисленные подразделы и значения. Они контролируют Продукты, Компоненты и Ключевые пути каждого установленного приложения. Вся эта информация должна быть прочитана и обработана для правильной процедуры удаления. Однако формат реестра перечисляет ключи в алфавитном порядке, что позволяет выполнять двоичный поиск. Но ценностей нет. Они сохраняются по мере их создания, поэтому необходимо выполнить процедуру линейного поиска. Что замедляет работу алгоритма.
В целом, MSI - это достаточно полный и точный метод установки и удаления программного обеспечения. Но он страдает от своей зависимости реестра. Система отличная. Это реестр Windows, который должен был быть капитально отремонтирован давно :)
Для получения более подробной информации:
для глубокого анализа того, что MSI делает во время каждой процедуры установки или удаления, обратитесь к этой статье, которая объясняет, как настроить MSI Debug. Или, для меньшей, но все же ценной информации, вот как активировать ведение журнала.
источник
Установщик Windows имеет много больших преимуществ для корпоративного развертывания , некоторые из которых я описал здесь: /server//a/274609/20599
Большая часть медлительности сеанса установщика Windows связана с его возможностями отката . Во-первых, он создает точку восстановления перед установкой или удалением (при условии, что восстановление системы не было отключено). Затем он выполнит резервное копирование всех уязвимых файлов во время удаления и установки, чтобы гарантировать, что система может быть восстановлена в исходное состояние в случае возникновения ошибки.
Еще одним фактором является то, что все компоненты в MSI будут зарегистрированы в реестре . Это связано с некоторыми накладными расходами .
Для скомпилированных файлов MSI также требуется некоторое время для извлечения файлов установки .
Смотрите этот ответ для технических деталей для ускорения установки MSI .
источник
Установщики Windows так часто используются по многим причинам - интеграция операционной системы, политики безопасности, автоматические установки и многое другое.
Наиболее распространенная причина, о которой я могу думать, - это автоматические установки и сетевые дистрибутивы. Крупные корпорации могут легко распространять приложения, имея файл MSI на сетевом диске, а затем просто вызывая пакетный файл (или приложение мастера распространения) на удаленной машине, чтобы автоматизировать процесс установки.
В то время как другие параметры существуют вне файлов .MSI, есть некоторые уникальные функции, которые интегрируются с большинством версий Windows , которых нет у многих других установщиков.
И, чтобы вы знали - InstallShield не всегда является интерфейсом для файлов MSI. У них также есть свое собственное решение для установки.
источник