Sejak Windows XP, Pemasang Windows (file .msi), termasuk Pemasang InstallShield (yang hanya merupakan bootstrap untuk MSI) telah memakan waktu sekitar lima kali lebih lama untuk menghapus instalasi aplikasi dibandingkan dengan pemasangan lainnya. Hal yang sama juga biasanya berlaku untuk menginstal.
Mengapa mereka masih membutuhkan waktu selama ini, dan mengapa orang masih menggunakan MSI untuk menginstal? Sebagai contoh:
Copot pemasangan VLC - membutuhkan waktu sekitar 5 detik.
Copot pemasangan XYZ - luncurkan "Bersiap untuk menghapus ..." diikuti dengan penundaan 15 detik.
Yang dilakukan adalah menghapus file dan membersihkan registri (yang mungkin termasuk registrasi COM), jadi mengapa perlu waktu lama?
windows
uninstall
installer
windows-installer
Chris S
sumber
sumber
Do you want to allow the following program from an unknown publisher to make changes to this computer?
bersembunyi di latar belakang.Jawaban:
Pemasang Windows pertama secara sistematis membuat titik pemulihan sistem, yang merupakan operasi yang cukup lambat.
Juga dari artikel yang berjudul, dengan tepat, "Pemasang Windows menyebalkan" , kutipan:
Saya juga menambahkan bahwa penginstal Windows menyimpan semua informasi dalam registri, yang bukan database tercepat di dunia.
sumber
dpkg
digunakan untuk database paketnya (walaupun, diakui, dpkg tidak menyimpan semuanya di dalamnya):/var/lib/dpkg/status
adalah file teks datar yang mencantumkan setiap paket tunggal yang pernah diinstal, dan sejak itu belum dibersihkan - dan saya Aku bahkan tidak yakin itu selalu menghilangkan yang dibersihkan.dpkg
tidak berbohong kepada saya dengan progress bar yang mengatakan "Sisa Waktu: 0 detik" selama dua menit, meskipun ...Pemasang Windows memang memiliki reputasi lambat. Ada beberapa hal yang berkontribusi terhadap hal ini dan saya akan mengatasinya di bawah ini. Tetapi pada akhirnya, orang harus bertanya pada diri sendiri apakah satu, dua, atau tiga menit benar-benar masalah pertikaian ketika menginstal dan menghapus instalasi perangkat lunak. Saya mengambil lebih banyak waktu daripada membalik-balik saluran TV :)
Registry
Ini adalah pelakunya nomor satu. Pemasang Windows banyak menggunakan registri untuk operasinya. Ketika sistem Anda menjadi matang, saat Anda menginstal dan menghapus aplikasi dan seiring bertambahnya ukuran registri atau menjadi terfragmentasi, MSI akan menjadi lebih lambat. Aplikasi yang sama akan menginstal dan menghapus instalan lebih cepat pada instalasi Windows yang asli, daripada pada sistem yang matang. Solusinya di sini adalah mencoba dan menjaga registri tetap bersih dan didefragmentasi.
Untuk pembersihan registri, gunakan salah satu dari banyak alat yang tersedia di luar sana. Tetapi untuk defrag registri saya tidak dapat merekomendasikan NTREGOPT yang cukup untuk optimasi sarang internal dan PageDefrag untuk defragmentasi file fisik.
Alasan mengapa operasi MSI menjadi lambat pada registri ada hubungannya dengan bagaimana MSI menggunakannya. Pemasang Windows menggunakan registri untuk melacak Produk mana yang telah diinstal Komponen mana dan ke Lokasi mana itu diinstal. GUIDs instalasi asli digunakan dalam format terkompresi. Informasi per mesin tentang penginstalan dapat ditemukan di
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
, sedangkan data per pengguna ditemukan di sebelahnya di bawahHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
dan pada kunci dengan SID pengguna.Kedua kunci ini bisa sangat besar dan berisi banyak subkunci dan nilai. Mereka mengontrol Produk, Komponen dan KeyPath dari setiap aplikasi yang diinstal. Semua informasi ini harus dibaca dan diproses untuk prosedur penghapusan instalasi yang benar. Namun format registri mencantumkan kunci dalam urutan abjad yang memungkinkan untuk pencarian biner. Tapi nilainya tidak. Mereka disimpan begitu dibuat, jadi prosedur pencarian linear harus dilakukan. Yang memperlambat kinerja algoritma.
Secara keseluruhan, MSI adalah metode yang agak lengkap dan akurat untuk instalasi dan penghapusan instalasi perangkat lunak. Tetapi menderita ketergantungan registri. Sistemnya sangat baik. Ini adalah registri Windows yang seharusnya diperbaiki sejak lama :)
Untuk informasi lebih lanjut:
Untuk analisis mendalam tentang apa yang dilakukan MSI selama setiap prosedur pemasangan atau penghapusan, lihat artikel ini yang menjelaskan cara mengatur MSI Debug. Atau, untuk informasi yang kurang namun masih bernilai, yang satu ini cara mengaktifkan logging.
sumber
Pemasang Windows memiliki banyak keuntungan besar untuk penyebaran perusahaan , beberapa di antaranya telah saya jelaskan di sini: https://serverfault.com/a/274609/20599
Sebagian besar kelambatan sesi Pemasang Windows adalah karena kemampuan rollback-nya . Pertama itu menciptakan titik pemulihan sebelum menginstal atau menghapus instalasi (asalkan pemulihan sistem belum dinonaktifkan). Kemudian itu akan mencadangkan semua file yang terkena dampak selama uninstall dan menginstal untuk memastikan bahwa sistem dapat dikembalikan ke keadaan semula jika terjadi kesalahan.
Faktor lain yang berkontribusi adalah bahwa semua komponen dalam MSI akan terdaftar dalam registri . Ini melibatkan beberapa overhead .
Untuk mengkompilasi file MSI beberapa waktu juga diperlukan untuk mengekstrak file instal .
Lihat jawaban ini untuk detail teknis untuk mempercepat instalasi MSI .
sumber
Pemasang Windows sangat umum digunakan karena berbagai alasan - integrasi sistem operasi, kebijakan keamanan, instalasi tanpa pengawasan, dan banyak lagi.
Alasan paling umum yang dapat saya pikirkan adalah instalasi tanpa pengawasan, dan distribusi jaringan. Perusahaan besar dapat dengan mudah mendistribusikan aplikasi, dengan memiliki file .MSI pada drive jaringan, dan kemudian hanya memanggil batchfile (atau aplikasi wizard distribusi) pada mesin jarak jauh untuk mengotomatiskan proses instalasi.
Sementara opsi lain ada di luar file .MSI, ada beberapa fitur unik yang terintegrasi dengan sebagian besar versi Windows yang tidak dimiliki banyak penginstal lain.
Dan agar Anda tahu - InstallShield tidak selalu merupakan front-end untuk file MSI. Mereka juga memiliki solusi instalasi milik mereka sendiri.
sumber