Windows Installer는 실제로 속도가 느리다는 명성을 가지고 있습니다. 이것에 기여하는 몇 가지 사항이 있으며 아래에서 다루겠습니다. 그러나 궁극적으로 소프트웨어 설치 및 제거시 1 분, 2 분 또는 3 분이 실제로 경합의 문제인지 스스로에게 문의해야합니다. TV 채널을 넘기는 것보다 시간이 더 걸립니다. :)
레지스트리
이것은 범인입니다. Windows Installer는 작업을 위해 레지스트리를 많이 사용합니다. 시스템이 성숙함에 따라 응용 프로그램을 설치 및 제거하고 레지스트리 크기가 커지거나 조각화되면 MSI 속도가 느려집니다. 동일한 응용 프로그램은 성숙 된 시스템보다 원래의 Windows 설치에서 훨씬 빠르게 설치 및 제거됩니다. 여기서 해결책은 레지스트리를 깨끗하고 조각 모음을 시도하는 것입니다.
레지스트리 정리를 위해 사용 가능한 많은 도구 중 하나를 사용하십시오. 그러나 레지스트리 조각 모음의 경우 내부 하이브 최적화에 충분한 NTREGOPT 를 권장 하고 실제 파일 조각 모음에 대해서는 PageDefrag 를 권장하지 않습니다 .
MSI 작동이 레지스트리에서 느려질 수있는 이유는 MSI가 사용하는 방법과 관련이 있습니다. Windows Installer는 레지스트리를 사용하여 어떤 제품이 어떤 구성 요소를 설치했으며 어떤 위치에 설치했는지 추적합니다. 원래 설치 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 디버그 설정 방법을 설명하는 이 문서 를 참조하십시오 . 또는, 더 적은을 위해 여전히 가치있는 정보 이것 활성화 방법 로깅 한.