Perché la versione a 64 bit di Windows è più grande della versione a 32 bit?


Risposte:


77

Esistono diversi motivi per la differenza di dimensioni:

  1. Windows a 64 bit contiene un livello di traduzione (Windows a 32 bit su Windows a 64 bit o " WoW64 ") che consente di eseguire software a 32 bit.
  2. Windows a 64 bit contiene anche versioni a 32 bit di vari programmi (Internet Explorer) e librerie (nella cartella WinSxS). Come notato nei commenti, questa è la ragione più significativa della differenza dimensionale.
  3. Gli indirizzi di memoria a 64 bit hanno una lunghezza doppia rispetto agli indirizzi di memoria a 32 bit, quindi anche i puntatori a 64 bit sono lunghi il doppio. I programmi a 64 bit che fanno un uso pesante di puntatori saranno notevolmente più grandi delle loro controparti a 32 bit.

Il primo e l'ultimo motivo non contribuiscono quasi quanto il software a 32 bit fornito con Windows a 64 bit, ma per motivi di completezza, dovrebbero essere considerati.


4
è dovuto principalmente al punto 1: la sxscartella all'interno di .iso è 177 m per 32 bit, 315 m per 64 bit. la windowscartella all'interno install.wimdell'iso è 7,9 g per 32 bit, 11,9 g per 64 bit. e all'interno di quella cartella abbiamo di nuovo WinSxS3,9 g per 32 bit e 6,9 ​​g per 64 bit. la roba side-by-side è la più grande parte di dati qui ed è lì per entrambe le app a 32 e 64 bit nella versione a 64 bit di Windows. avere binari più grandi e alcune doppie versioni delle applicazioni non ha quasi alcun impatto sulla dimensione degli isos.
Akira

26
Non vedo come il punto 3 influirebbe sulla dimensione dell'immagine. Pochissimi valori di puntatore sono codificati nel codice sorgente. Solo quelli occuperebbero spazio nel file binario del software (anziché nell'immagine RAM una volta eseguito il software).
Konrad Rudolph

10
Per (1), tutti i Wow64 .DLL occupano meno di 1 MB sulla mia installazione di Win7 Pro. Per (3), @KonradRudolph è corretto. Non esiste una vera ragione per cui il codice intrinseco si sposta da 32 a 64 bit: alcuni codici operativi sono cambiati, sebbene la maggior parte sia ancora larga solo 32 bit (x86 è un'architettura di istruzioni a lunghezza variabile). La maggior parte di questa discrepanza deriva da (2).
Breakthrough

3
@akira La sxscartella ha a che fare con (2), non (1). Gli assembly side-by-side non fanno parte di WoW64, sebbene le DLL a 32 bit vengano eseguite in WoW64. Tuttavia, la cartella WinSxS è lì per fornire file binari a 32 e 64 bit per i programmi che richiedono la rispettiva DLL, essenzialmente con una versione a 32 e 64 bit della DLL.
Breakthrough

3
@CrisStringfellow: nessuno ne dubitava. ma l' effetto sulla dimensione complessiva delle immagini ISO è quasi nullo. la parte principale dell'aumento delle dimensioni è causata dalla consegna di roba a 64 e 32 bit (alcune app, molte dll [che si trovano principalmente nella WinSxScartella nel .iso]).
Akira

11

Nelle versioni a 64 bit, Microsoft distribuisce software aggiuntivo. Ad esempio, esistono due versioni di Internet Explorer (64 e 32 bit). Un altro esempio è l'intero sistema di runtime per le applicazioni Win32 .
Inoltre, il codice binario diventerà più grande . Probabilmente la somma di questi fa la differenza.


2

Le versioni a 64 bit sono generalmente più grandi della versione a 32 bit per un paio di motivi.

La prima cosa da considerare è il tipo di compilatore e l'ambiente di runtime in cui viene eseguito il software. Se il software è costruito con un compilatore che produce codice nativo e viene eseguito senza un ambiente di runtime, è possibile vedere piccole differenze nella dimensione del codice generato, che è correlato a un set di istruzioni più grande nei processori CISC.

In secondo luogo, se il software viene compilato per essere eseguito in un ambiente di runtime, come .NET, non vedrai differenze di dimensioni, poiché il compilatore genera lo stesso codice (intermedio).

Infine, la versione a 64 bit di Windows contiene la versione completa a 64 bit con alcune delle controparti della versione a 32 bit. Ciò è necessario poiché alcuni software sono a 32 bit e devono essere eseguiti senza modifiche in Windows a 64 bit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.