Windows Installer มีชื่อเสียงในด้านความช้า มีบางสิ่งที่สนับสนุนเรื่องนี้และฉันจะพูดถึงพวกเขาด้านล่าง แต่ท้ายที่สุดแล้วเราควรถามตัวเองว่าหนึ่งสองหรือสามนาทีนั้นเป็นเรื่องของความขัดแย้งเมื่อทำการติดตั้งและถอนการติดตั้งซอฟต์แวร์หรือไม่ ฉันใช้เวลามากกว่าการพลิกช่องทีวี :)
Registry
นี่คือผู้ร้ายหมายเลขหนึ่ง 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
คีย์เหล่านี้ทั้งสองมีขนาดค่อนข้างใหญ่และมีคีย์ย่อยและค่าจำนวนมาก พวกเขาควบคุมผลิตภัณฑ์ส่วนประกอบและ KeyPaths ของแต่ละแอปพลิเคชันที่ติดตั้ง ข้อมูลทั้งหมดนี้จะต้องอ่านและประมวลผลสำหรับขั้นตอนการถอนการติดตั้งที่ถูกต้อง อย่างไรก็ตามรูปแบบรีจิสตรีจะแสดงคีย์ตามลำดับตัวอักษรที่สามารถค้นหาแบบไบนารี่ได้ แต่คุณค่าไม่ใช่ พวกเขาจะถูกเก็บไว้ในขณะที่พวกเขาสร้างขึ้นดังนั้นขั้นตอนการค้นหาเชิงเส้นจะต้องดำเนินการ ซึ่งทำให้ประสิทธิภาพของอัลกอริทึมช้าลง
สรุปแล้ว MSI เป็นวิธีที่ค่อนข้างสมบูรณ์และถูกต้องสำหรับการติดตั้งและถอนการติดตั้งซอฟต์แวร์ แต่มันก็ต้องทนทุกข์ทรมานจากการพึ่งพารีจิสทรี ระบบเป็นเลิศ เป็นรีจิสทรีของ Windows ที่ควรมีการปรับปรุงใหม่นานแล้ว :)
สำหรับข้อมูลขั้นสูงเพิ่มเติม:
สำหรับการวิเคราะห์อย่างลึกซึ้งถึงสิ่งที่ MSI ทำในระหว่างขั้นตอนการติดตั้งหรือถอนการติดตั้งแต่ละครั้งให้อ้างอิงบทความนี้ซึ่งอธิบายวิธีการตั้งค่า MSI Debug หรือให้น้อยลง แต่ยังคงข้อมูลที่มีค่านี้หนึ่งในวิธีการที่จะเข้าสู่ระบบการเปิดใช้งาน