Mengapa Windows versi 64-bit lebih besar dari versi 32-bit?

56

Perbedaan ukuran gambar Windows 8 Consumer Preview ISO , antara versi 64 bit dan 32 adalah 800 Mb atau perbedaan 24% .

Saya belum pernah melihat perbedaan yang begitu besar.

Mengapa ada perbedaan besar?

wizlog
sumber

Jawaban:

77

Ada beberapa alasan untuk perbedaan ukuran:

  1. 64-bit Windows berisi lapisan terjemahan (Windows 32-bit pada Windows 64-bit, atau " WoW64 ") yang memungkinkannya untuk menjalankan perangkat lunak 32-bit.
  2. 64-bit Windows juga berisi versi 32-bit dari berbagai program (Internet Explorer) dan perpustakaan (dalam folder WinSxS). Seperti disebutkan dalam komentar, ini adalah alasan paling signifikan untuk perbedaan ukuran.
  3. Alamat memori 64-bit dua kali lebih panjang dari alamat memori 32-bit, jadi pointer 64-bit juga dua kali lebih panjang. Program 64-bit yang banyak menggunakan pointer akan terasa lebih besar daripada rekan-rekan 32-bit mereka.

Alasan pertama dan terakhir tidak berkontribusi sebanyak perangkat lunak 32-bit yang dikirimkan dengan Windows 64-bit - tetapi demi kelengkapan, mereka harus dipertimbangkan.

rampok
sumber
4
terutama karena poin 1: sxsfolder di dalam iso is is 177m untuk 32bit, 315m untuk 64bit. yang windowsfolder di dalam install.wimdi dalam iso adalah 7.9g untuk 32bit, 11.9g untuk 64bit. dan di dalam folder itu kita memiliki lagi WinSxSyaitu 3,9g untuk 32bit dan 6,9g untuk 64bit. hal-hal berdampingan adalah bagian terbesar dari data di sini dan itu ada untuk aplikasi 32bit dan 64bit dalam versi windows 64bit. memiliki binari yang lebih besar dan beberapa versi aplikasi ganda hampir tidak berdampak pada ukuran isos.
akira
26
Saya tidak melihat bagaimana titik 3 akan berdampak pada ukuran gambar. Sangat sedikit nilai pointer yang dikodekan ke dalam kode sumber. Hanya yang akan mengambil ruang dalam biner perangkat lunak (daripada gambar RAM setelah perangkat lunak dijalankan).
Konrad Rudolph
10
Untuk (1), semua Wow64. DLL memakan waktu kurang dari 1MB pada instalasi Win7 Pro saya. Untuk (3), @KonradRudolph benar. Tidak ada alasan sebenarnya untuk kode intrinsik mengasapi dari bergerak dari 32 ke 64-bit - beberapa opcodes berubah, meskipun sebagian besar masih lebar hanya 32-bit (x86 adalah arsitektur instruksi panjang variabel). Mayoritas perbedaan ini muncul dari (2).
Terobosan
3
@akira sxsFolder ini ada hubungannya dengan (2), bukan (1). Majelis berdampingan bukanlah bagian dari WoW64, meskipun DLL 32-bit dieksekusi di bawah WoW64. Namun, folder WinSxS ada untuk menyediakan binari 32-bit dan 64-bit untuk program yang memerlukan DLL masing-masing - pada dasarnya memiliki versi DLL 32-bit dan 64-bit.
Terobosan
3
@CrisStringfellow: tidak ada yang meragukannya. tetapi efek pada ukuran keseluruhan gambar iso hampir nol. potongan utama peningkatan ukuran disebabkan oleh pengiriman barang 64bit DAN 32bit (beberapa aplikasi, banyak dll [kebanyakan ditemukan di dalam WinSxSfolder di .iso]).
akira
11

Dalam versi 64bit, Microsoft menyebarkan perangkat lunak tambahan. Misalnya, ada dua versi Internet Explorer (64 dan 32bit). Contoh lain adalah keseluruhan sistem runtime untuk aplikasi Win32 .
Juga, kode biner akan semakin besar . Mungkin jumlah ini membuat perbedaan besar.

HCL
sumber
2

Versi 64-bit umumnya lebih besar daripada versi 32-bit karena beberapa alasan.

Hal pertama yang perlu dipertimbangkan adalah jenis kompiler dan lingkungan runtime tempat perangkat lunak dijalankan. Jika perangkat lunak dibangun dengan kompiler yang menghasilkan kode asli dan berjalan tanpa lingkungan runtime, dimungkinkan untuk melihat perbedaan kecil dalam ukuran kode yang dihasilkan, yang terkait dengan instruksi yang lebih besar yang ditetapkan dalam prosesor CISC.

Kedua, jika perangkat lunak dikompilasi untuk berjalan di bawah lingkungan runtime, seperti .NET, Anda tidak akan melihat perbedaan ukuran, karena kompiler menghasilkan kode (perantara) yang sama.

Akhirnya, versi 64-bit Windows berisi versi 64-bit lengkap dengan beberapa versi 32-bit. Ini diperlukan karena beberapa perangkat lunak 32-bit dan perlu dijalankan tanpa modifikasi pada Windows 64-bit.

Chris Mylonas
sumber