Windows Installer gerçekten de yavaş olduğu için bir üne sahiptir. Buna katkıda bulunan birkaç şey var ve ben aşağıda bunları ele alacağım. Ancak nihayetinde, bir kişi yazılımın kurulumu ve kaldırılması sırasında bir, iki veya üç dakikalık bir çekişme olup olmadığını sormalıdır. TV kanallarını çevirmekten daha fazla zaman alıyorum :)
Kayıt Defteri
Bu, bir numaralı suçludur. Windows Installer, işlemleri için kayıt defterini yoğun olarak kullanır. Sisteminiz olgunlaştıkça, uygulamaları yükleyip kaldırırken ve kayıt defteri boyutu büyüdükçe veya parçalandıkça, MSI daha yavaş olacaktır. Aynı uygulama, bozulmamış bir Windows yüklemesinde, olgunlaşmış bir sisteme göre çok daha hızlı yükleyip kaldıracak. Buradaki çözüm, kayıt defterini temiz ve birleştirilmeye çalışmaktır.
Kayıt defteri temizliği için, mevcut birçok araçtan birini kullanın. Ancak kayıt defteri birleştirme için iç kovan optimizasyonu ve fiziksel dosya birleştirme için PageDefrag için yeterli NTREGOPT öneremiyorum .
MSI işlemlerinin kayıt defterinde yavaşlama sebebi, MSI'nin bunu nasıl kullandığı ile ilgilidir. Windows Installer, hangi Ürünlerin hangi Bileşenleri ve hangi Konumunun yüklü olduğunu izlemek için kayıt defterini kullanır. Orijinal kurulum GUID'leri sıkıştırılmış biçimde kullanılır. Yüklemeler hakkında makine başına bilgi bulunabilir HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
, oysa kullanıcı başına veri yanında ve altında HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
kullanıcı SID'si olan bir anahtarda bulunur.
Her iki anahtar da oldukça büyük olabilir ve çok sayıda alt anahtar ve değer içerir. Yüklenen her uygulamanın Ürünlerini, Bileşenlerini ve KeyPath'lerini kontrol ederler. Tüm bu bilgiler, doğru bir kaldırma prosedürü için okunmalı ve işlenmelidir. Ancak kayıt defteri formatı, anahtar kelimeleri ikili aramalara izin veren alfabetik sırayla listeler. Ancak değerler değildir. Oluşturuldukları gibi saklanırlar, bu nedenle doğrusal bir arama prosedürü gerçekleştirilmelidir. Bu algoritma performansını yavaşlatır.
Sonuç olarak, MSI, yazılımın yüklenmesi ve kaldırılması için oldukça eksiksiz ve doğru bir yöntemdir. Ancak, kayıt defteri bağımlılığından muzdariptir. Sistem mükemmel. Uzun zaman önce elden geçirmesi gereken Windows kayıt defteri :)
Daha ileri bilgi için:
Her yükleme veya kaldırma işlemi sırasında MSI'nin ne yaptığını derinlemesine incelemek için, MSI Hata Ayıklama'nın nasıl kurulacağını açıklayan bu makaleye bakın . Veya, daha az ancak yine de değerli bilgiler için, bu , günlük kaydını nasıl etkinleştireceğinizi gösterir.