Instalator Windows ma reputację powolności. Przyczynia się do tego kilka rzeczy, które omówię poniżej. Ale ostatecznie należy zadać sobie pytanie, czy jedna, dwie lub trzy minuty to tak naprawdę kwestia sporna podczas instalowania i odinstalowywania oprogramowania. Zajmuję więcej czasu niż przeglądanie kanałów telewizyjnych :)
Rejestr
Jest to winowajca numer jeden. Instalator Windows intensywnie wykorzystuje rejestr do swoich operacji. W miarę dojrzewania systemu, instalowania i odinstalowywania aplikacji oraz wzrostu rejestru lub jego fragmentacji, MSI będzie wolniejszy. Ta sama aplikacja zainstaluje się i odinstaluje znacznie szybciej w nieskazitelnej instalacji Windows niż w dojrzałym systemie. Rozwiązaniem tutaj jest utrzymanie rejestru w czystości i defragmentacji.
Do czyszczenia rejestru użyj jednego z wielu dostępnych narzędzi. Ale w przypadku defragmentacji rejestru nie mogę zalecić wystarczającej liczby NTREGOPT do wewnętrznej optymalizacji gałęzi i PageDefrag do fizycznej defragmentacji plików.
Powodem, dla którego operacje MSI mogą być wolne w rejestrze, jest to, w jaki sposób MSI z nich korzysta. Instalator Windows używa rejestru do śledzenia, które Produkty zainstalowały, które Składniki i lokalizację, w której został zainstalowany. Oryginalne identyfikatory GUID instalacji są używane w formacie skompresowanym. Informacje o instalacjach dla poszczególnych komputerów można znaleźć pod adresem HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
, natomiast dane dla poszczególnych użytkowników znajdują się obok nich w HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
kluczach SID użytkownika i na kluczach.
Oba te klucze mogą być dość duże i zawierają wiele podkluczy i wartości. Kontrolują Produkty, Komponenty i Ścieżki Kluczowe każdej zainstalowanej aplikacji. Wszystkie te informacje muszą zostać odczytane i przetworzone w celu prawidłowej procedury odinstalowania. Jednak format rejestru zawiera klucze w kolejności alfabetycznej, co pozwala na wyszukiwanie binarne. Ale wartości nie są. Są one zapisywane podczas ich tworzenia, dlatego należy przeprowadzić procedurę wyszukiwania liniowego. Co spowalnia działanie algorytmu.
Podsumowując, MSI jest raczej kompletną i dokładną metodą instalacji i deinstalacji oprogramowania. Ale cierpi z powodu zależności rejestru. System jest doskonały. To rejestr systemu Windows już dawno powinien był zostać przerobiony :)
Aby uzyskać bardziej zaawansowane informacje:
Aby uzyskać dogłębną analizę tego, co robi MSI podczas każdej procedury instalowania lub odinstalowywania, zapoznaj się z tym artykułem wyjaśniającym, jak skonfigurować debugowanie MSI. Lub, dla mniej, ale wciąż cennych informacji, ten jak aktywować rejestrowanie.