it-swarm-eu.dev

Sistemi a 32 bit rispetto a 64 bit

Quali sono le differenze tra i sistemi a 32 bit e 64 bit?

Se li hai usati entrambi, che tipo di differenze nette hai vissuto?

In alcuni casi, sarebbe un problema utilizzare programmi a 32 bit su sistemi a 64 bit?

219

Nota: queste risposte si applicano a CPU PC basate su x86 standard (Intel e AMD) e Windows (come tipicamente configurato per gli utenti finali). Altri chip a 32 o 64 bit, altri sistemi operativi e altre configurazioni del sistema operativo possono avere compromessi diversi.

Dal punto di vista tecnico, un sistema operativo a 64 bit ti offre:

  • Consente a singoli processi di gestire più di 4 GB di RAM ciascuno (in pratica, la maggior parte ma non tutti i sistemi operativi a 32 bit limitano il sistema totale utilizzabile RAM a meno di 4 GB, non solo il massimo per applicazione).

  • Tutti i puntatori prendono 8 byte invece di 4 byte. L'effetto su RAM utilizzo è minimo (perché non è probabile che un'applicazione contenga molti gigabyte di puntatori), ma nel peggiore caso teorico, ciò può rendere la cache della CPU in grado di contenere 1/2 quanti più puntatori (per renderlo efficacemente 1/2 della dimensione). Per la maggior parte delle applicazioni, questo non è un grosso problema.

  • Esistono molti altri registri CPU generici nella modalità a 64 bit. I registri sono la memoria più veloce dell'intero sistema. Ci sono solo 8 in modalità a 32 bit e 16 registri di uso generale in modalità a 64 bit. Nelle applicazioni di calcolo scientifico che ho scritto, ho ottenuto un aumento delle prestazioni del 30% ricompilando in modalità a 64 bit (la mia applicazione poteva davvero usare i registri extra).

  • La maggior parte dei sistemi operativi a 32 bit consente alle singole applicazioni di utilizzare solo 2 GB di RAM, anche se sono installati 4 GB. Questo perché gli altri 2 GB di spazio degli indirizzi sono riservati per la condivisione dei dati tra le applicazioni, con il sistema operativo e per comunicare con i driver. Windows e Linux ti consentono di regolare questo compromesso in 3 GB per le applicazioni e 1 GB condiviso, ma ciò può causare problemi ad alcune applicazioni che non prevedono la modifica. Immagino anche che potrebbe paralizzare una scheda grafica con 1 GB di RAM (ma non ne sono sicuro). Un sistema operativo a 64 bit può offrire singole applicazioni a 32 bit più vicine ai 4 GB con cui giocare.

Dal punto di vista dell'utente:

  • La velocità dell'applicazione è solitamente più veloce per un'applicazione a 64 bit in un sistema operativo a 64 bit rispetto alla versione a 32 bit dell'applicazione su un sistema operativo a 32 bit, ma la maggior parte degli utenti non vedrà questa accelerazione. La maggior parte delle applicazioni per utenti normali non sfrutta realmente i registri extra o i benefici sono bilanciati da indicatori più grandi che riempiono la cache.

  • Se si dispone di applicazioni di memoria di maiale (come editor di foto, elaborazione video, elaborazione scientifica, ecc.), Se si dispone (o può acquistare) di più di 3 GB di RAM e si può ottenere una versione a 64 bit dell'applicazione, la scelta è semplice: usa il sistema operativo a 64 bit.

  • Alcuni componenti hardware non dispongono di driver a 64 bit. Controlla la tua scheda madre, tutte le schede plug-in e tutti i dispositivi USB prima di fare lo switch. Si noti che agli albori di Windows Vista c'erano molti problemi con i driver. In questi giorni le cose sono generalmente migliori.

  • Se esegui così tante applicazioni alla volta che stai esaurendo RAM (di solito puoi dire questo perché il tuo computer inizia ad essere molto lento e senti il ​​crunch del disco rigido), allora desidera un sistema operativo a 64 bit (e RAM sufficiente).

  • È possibile eseguire applicazioni a 32 bit (ma non i driver) in Windows 64-bit senza problemi. Il peggior rallentamento che ho misurato per un'applicazione a 32 bit in Windows a 64 bit è circa del 5% (il che significa che se ci sono voluti 60 secondi per fare qualcosa in Windows a 32 bit, ci sono voluti al massimo 60 * 1.05 = 65 secondi con la stessa applicazione a 32 bit in Windows a 64 bit).

Cosa fa not implica: 32/bit a 64 bit:

Sui sistemi x86, 32 bit vs 64 bit direttamente si riferisce alla dimensione dei puntatori. È tutto.

  • Non si riferisce alla dimensione del tipo C int. Ciò è deciso dalla particolare implementazione del compilatore e la maggior parte dei compilatori popolari scelgono int a 32 bit su sistemi a 64 bit.

  • Non fa direttamente fa riferimento alla dimensione dei normali registri senza puntatore. Tuttavia, l'utilizzo di registri aritmetici a 64 bit richiede che l'applicazione e il sistema operativo vengano eseguiti anche in modalità puntatore a 64 bit.

  • Non fa direttamente fa riferimento alla dimensione del bus indirizzo fisico. Ad esempio, un sistema con linee cache a 64 bit di larghezza e un massimo di 512GiB di memoria richiede solo 33 bit nel suo bus di indirizzo (ad esempio log2(512*1024**3) - log2(64) = 33).

  • Non si riferisce alle dimensioni del bus dati fisico: è più correlato ai costi di produzione (numero di pin nel socket della CPU) e alle dimensioni della linea della cache.

261
Mr Fooz

Fondamentalmente puoi fare tutto su una scala più grande:

  1. RAM per sistema operativo: RAM limite di 4 GB su x86 per il sistema operativo (la maggior parte delle volte)
  2. RAM per processo: RAM limite di 4 GB su x86 per i processi (sempre). Se ritieni che ciò non sia importante, prova a eseguire un'enorme applicazione intensiva con database MSSQL. Userà> 4 GB se disponibile e funzionerà molto meglio.
  3. Indirizzi: Gli indirizzi sono 64 bit anziché 32 bit, consentendo di avere programmi "più grandi" che utilizzano più memoria.
  4. Gestisce i programmi disponibili: Puoi creare più handle di file, processi, ... Esempio su Windows x64 puoi creare> 2000 thread per processo, ma su x86 più vicino a qualche centinaia.
  5. Programmi più diffusi disponibili: Da un x64 è possibile eseguire entrambi i programmi x86 e x64. (Esempio di finestre: wow64, windows32 su emulazione windows64)
  6. Opzioni di emulazione: Da un x64 è possibile eseguire sia VM x86 che x64.
  7. Faster: Alcuni calcoli sono più veloci su una CPU a 64 bit
  8. Dividere più risorse di sistema: Gran parte della memoria RAM è molto importante quando si desidera eseguire almeno un VM che divide le risorse del sistema.
  9. Programmi esclusivi disponibili: Diversi nuovi programmi supportano solo x64. Esempio Exchange 2007.
  10. Future obsolete x86 ?: Nel tempo verranno utilizzati sempre più 64 bit e non verrà più utilizzato x86. Quindi i distributori supporteranno solo 64 bit in più e in più.

I 2 grandi tipi di architetture a 64 bit sono architetture x64 e IA64. Ma x64 è il più popolare di gran lunga.

x64 può eseguire comandi x86 e anche comandi x64. IA64 esegue anche i comandi x86, ma non fa estensioni SSE. C'è hardware dedicato su Itanium per eseguire le istruzioni x86; è un emulatore, ma nell'hardware.

Come @Phil menzionato puoi avere un aspetto più profondo di come funziona qui .

106
Brian R. Bondy

L'impatto maggiore che la gente noterà al momento è che un PC a 32 bit può gestire solo un massimo di 4 GB di memoria. Quando togli la memoria allocata per altri usi dal sistema operativo, il tuo PC probabilmente mostrerà solo circa 3,25 GB di memoria utilizzabile. Passa a 64 bit e questo limite scompare.

Se stai facendo uno sviluppo serio, questo potrebbe essere molto importante. Prova a eseguire diverse macchine virtuali e presto esaurisci la memoria. È più probabile che i server necessitino della memoria extra e quindi scoprirai che l'utilizzo a 64 bit è molto più grande sui server rispetto ai desktop. La legge di Moore assicura che avremo sempre più memoria sulle macchine e quindi ad un certo punto i desktop passeranno anche a 64 bit come standard.

Per una descrizione molto più dettagliata delle differenze tra i processori, consulta questo eccellente articolo di ArsTechnica .

46
Phil Wright

Niente è gratuito: anche se le applicazioni a 64 bit possono accedere a più memoria rispetto alle applicazioni a 32 bit, lo svantaggio è che necessitano più memoria. Tutti quei puntatori che avevano bisogno di 4 byte, ora ne hanno bisogno 8. Ad esempio, il requisito predefinito in Emacs è il 60% in più di memoria quando è costruito per un'architettura a 64 bit. Questo footprint extra danneggia le prestazioni a tutti i livelli della gerarchia di memoria: i file eseguibili più grandi richiedono più tempo per essere caricati dal disco, gruppi di lavoro più grandi causano più paging e oggetti più grandi significano meno adattamento nella cache del processore. Se si pensa a una CPU con una cache L1 da 16K, un'applicazione a 32 bit può funzionare con 4096 puntatori prima che manchi e passi alla cache L2, ma un'applicazione a 64 bit deve raggiungere la cache L2 dopo solo 2048 puntatori.

Su x64 questo è mitigato dagli altri miglioramenti architettonici come più registri, ma su PowerPC se la tua applicazione non può usare> 4G è probabile che funzioni più velocemente su "ppc" che su "ppc64". Anche su Intel ci sono carichi di lavoro che girano più velocemente su x86, e pochi girano più del 5% più velocemente su x64 che su x86.

31
James

Un sistema operativo a 64 bit può utilizzare più RAM. Questo è tutto, in pratica. 64-bit Vista/7 utilizzano le funzionalità di sicurezza più elaborate per il posizionamento dei componenti vitali nella RAM, ma in realtà non è "notabile" in quanto tale.

Da ChrisInEdmonton:

Un sistema operativo a 32 bit su un sistema ix86 con PAE può gestire fino a 64 GB di RAM. Un sistema operativo a 64 bit su x86-64 può accedere a 256 TB di spazio di indirizzamento virtuale, sebbene questo possa essere generato nei processori successivi, fino a 16 EB. Si noti che alcuni sistemi operativi limitano ulteriormente lo spazio degli indirizzi e la maggior parte delle schede madri avrà ulteriori restrizioni.

19
Phoshi

Non sono sicuro di poter rispondere a tutte le tue domande senza scrivere un intero articolo (c'è sempre Google ...), ma non è necessario progettare le tue app in modo diverso per 64 bit. Immagino che ciò a cui ci si riferisce sia che bisogna essere consapevoli di cose come le dimensioni dei puntatori non hanno più le stesse dimensioni degli int. E hai un sacco di potenziali problemi con le ipotesi incorporate su determinati tipi di dati lunghi quattro byte che potrebbero non essere più veri.

È probabile che si verifichi un errore nell'accesso a qualsiasi tipo di applicazione, dal salvataggio/caricamento dal file, all'iterazione dei dati, all'allineamento dei dati fino alle operazioni bit a bit sui dati. Se si dispone di una base di codice esistente che si sta tentando di eseguire il porting o di lavorare su entrambi, è probabile che si verificheranno molti piccoli inconvenienti.

Penso che questo sia un problema di implementazione, piuttosto che uno di progettazione. Cioè Penso che il "design" di dire, un pacchetto di fotoritocco sarà lo stesso qualunque sia il linguaggio. Scriviamo codice che compila sia in versione a 32 bit che a 64 bit, e il design certamente non differisce tra i due: è lo stesso codice base.

Il "grande affare" fondamentale su 64 bit è che si accede a uno spazio di indirizzamento della memoria molto più ampio di 32 bit. Ciò significa che puoi davvero inserire più di 4 GB di memoria nel tuo computer e fare in modo che faccia la differenza.

Sono sicuro che altre risposte entreranno nei dettagli e ne trarranno benefici più di me.

In termini di rilevamento della differenza, quindi in modo programmatico, basta controllare la dimensione di un puntatore (ad esempio sizeof (void *)). La risposta di 4 significa i suoi 32 bit, e 8 significa che stai correndo in un ambiente a 64 bit.

14
Greg Whitfield

Un processo a 32 bit ha uno spazio di indirizzi virtuali di 4 GB; questo potrebbe essere troppo poco per alcune app. Un'app 64 bit ha uno spazio di indirizzi virtualmente illimitato (ovviamente è limitato, ma molto probabilmente non raggiungerai questo limite).

Su OSX ci sono altri vantaggi. Vedi il seguente articolo , perché avere il kernel eseguito nello spazio degli indirizzi a 64 bit (indipendentemente dal fatto che la tua app esegua 64 o 32) o l'esecuzione della tua app nello spazio degli indirizzi a 64 bit (mentre il kernel è ancora a 32 bit) porta a prestazioni molto migliori. Per riassumere: Se uno dei due è 64 bit (kernel o app, o entrambi, ovviamente), il TLB ("translation lookaside buffer") non deve essere svuotato ogni volta che si passa dal kernel all'utilizzo dello spazio e viceversa (che accelererà su RAM accesso).

Inoltre si hanno miglioramenti nelle prestazioni quando si lavora con variabili "long long int" (variabili a 64 bit come uint64_t). Una CPU a 32 bit può aggiungere/dividere/sottrarre/moltiplicare due valori a 64 bit, ma non in una singola operazione hardware. Invece ha bisogno di dividere questa operazione in due (o più) operazioni a 32 bit. Quindi un'app che funzioni molto con i numeri a 64 bit avrà un guadagno di velocità di essere in grado di fare matematica a 64 bit direttamente nell'hardware.

Infine, ma non meno importante, l'architettura x86-64 offre più registri rispetto alle classiche architetture x86. Lavorare con i registri è molto più veloce di lavorare con RAM e più registri ha la CPU, meno spesso è necessario scambiare i valori di registro con RAM e tornare ai registri.

Per scoprire se la tua CPU può funzionare in modalità 64 bit, puoi guardare varie variabili di sysctl. Per esempio. apri un terminale e digita

sysctl machdep.cpu.extfeatures

Se elenca EM64T, la CPU supporta lo spazio di indirizzamento a 64 bit in base allo standard x86-64. Puoi anche cercare

sysctl hw.optional.x86_64

Se dice 1 (true/enabled), la tua CPU supporta la modalità x86-64 Bit, se dice 0 (false/disabilitato), non lo fa. Se l'impostazione non viene trovata, considerala falsa.

Nota: è anche possibile recuperare le variabili sysctl dall'interno di un'app C nativa, non è necessario utilizzare lo strumento della riga di comando. Vedere

man 3 sysctl
10
Mecki

Nota che lo spazio degli indirizzi può essere usato per più di (reale) memoria. Si può anche mappare in memoria file di grandi dimensioni, che possono migliorare le prestazioni in modelli di accesso più dispari, dato che la cache di livello a livello di blocco più potente ed efficiente VM entra in gioco. È inoltre più sicuro allocare blocchi di memoria di grandi dimensioni a 64 bit dal il gestore di heap ha meno probabilità di incontrare frammentazione dello spazio degli indirizzi che non gli consentirà di allocare un blocco grande.

Alcune delle cose dette in questo thread (come il raddoppiamento di # registri) si applicano solo a x86-> x86_64, non a 64-bit in generale. Proprio come il fatto che sotto x86_64 quello garantito ha SSE2, 686 opcode e un modo economico per fare PIC. Queste funzionalità non sono rigorosamente a 64 bit, ma sul taglio delle legacy e sulla risoluzione dei limiti noti di x86

Inoltre, molto spesso le persone puntano al raddoppio dei registri come causa dell'accelerazione, mentre è più probabile che l'uso SSE2 predefinito faccia il trucco (accelerando memcpy e funzioni simili). Se abiliti lo stesso set per x86 la differenza è molto più piccola. (*) (***)

Inoltre, tieni presente che spesso c'è una penalità iniziale perché la struttura media dei dati aumenterà semplicemente perché la dimensione di un puntatore è maggiore. Questo ha anche effetti di cache, ma è significativamente più evidente nel fatto che la memcpy media () (o qualunque sia l'equivalente per la copia di memoria è nella tua lingua) impiegherà più tempo. Questo è solo nell'ordine di pochi percento btw, ma anche gli speedup nominati sopra sono di quella magnitudine.

Generalmente, l'overhead di allineamento è maggiore anche nelle architetture a 64 bit (i record precedentemente a 32 bit solo spesso diventano un mix di valori a 32 e 64 bit), facendo esplodere le strutture ancora di più.

Complessivamente, i miei semplici test indicano che si annulleranno a vicenda, se i driver e le librerie di runtime si sono completamente adattati, senza alcuna significativa differenza di velocità per l'app media. Tuttavia, alcune applicazioni possono improvvisamente diventare più veloci (ad es. Se dipendono da AES) o più lente (la struttura di dati cruciale viene costantemente spostata/scansionata/percorsa e contiene molti indicatori). I test erano comunque su Windows, quindi l'ottimizzazione del PIC non era stata sottoposta a benchmark.

Nota che la maggior parte dei linguaggi JIT-VM (Java, .NET) usa un numero significativamente maggiore di puntatori in media (internamente) rispetto ad es. C++. Probabilmente il loro uso di memoria aumenta più che per il programma medio, ma non ho il coraggio di identificarlo direttamente agli effetti di rallentamento (dal momento che questi sono animali davvero complessi e funky e spesso difficili da prevedere senza misurare)

Windows a 64 bit utilizza automaticamente SSE2 per virgola mobile che sembra velocizzare le operazioni semplici e rallenta le operazioni complesse (sin, cos, ecc.).

(*) un fatto poco noto è che il numero di registri SSE raddoppia anche in modalità 64 bit

(**) Il Dr Dobbs ha pubblicato un bell'articolo alcuni anni fa.

9

Oltre agli ovvi problemi di memorizzazione che la maggior parte delle persone menzionano qui, penso che valga la pena guardare alla nozione di "broadword computing" di cui Knuth (tra gli altri) ha parlato ultimamente. Esistono molte efficienze da acquisire tramite la manipolazione dei bit e le operazioni bit a bit su un Word a 64 bit vanno molto oltre rispetto a un Word a 32 bit. In breve, puoi fare più operazioni nei registri senza dover colpire la memoria, e dal punto di vista delle prestazioni, è una vittoria piuttosto grande.

Dai un'occhiata al Volume 4, pre-fascicolo 1A per alcuni esempi dei trucchi interessanti di cui sto parlando.

8
Michael Dorfman

Oltre alla possibilità di indirizzare più memoria x86_64 hanno anche più registri che consentono al compilatore di generare codice più efficiente. Il miglioramento delle prestazioni sarà di solito abbastanza piccolo.

L'architettura x86_64 è retrocompatibile con x86. È possibile eseguire sistemi operativi a 32 bit non modificati. È anche possibile eseguire software a 32 bit non modificato da un sistema operativo a 64 bit. Ciò richiederà comunque tutte le solite librerie a 32 bit. Potrebbe essere necessario installarli separatamente.

7
Kristof Provost

Questa discussione è già troppo lunga, ma ...

La maggior parte delle risposte si concentra sul fatto che si dispone di uno spazio di indirizzi di 64 bit più grande, in modo da poter indirizzare più memoria. Per circa il 99% di tutte le applicazioni, questo è del tutto irrilevante. Grande urlo.

Il real reason 64-bit è buono è not che i registri sono più grandi, ma ce ne sono il doppio! Ciò significa che il compilatore può mantenere più valori nel registro invece di riversarli in memoria e caricarli di nuovo in alcune istruzioni successive. Se e quando un compilatore ottimizzante sta srotolando i tuoi loop per te, può srotolarli all'incirca il doppio, il che può davvero aiutare le prestazioni.

Inoltre, le convenzioni di subroutine caller/callee per 64-bit sono state definite per mantenere la maggior parte dei parametri passati nei registri invece che il chiamante spingendoli nello stack e il destinatario richiamandoli.

Quindi un'applicazione C/C++ "tipica" otterrà circa il 10% o il 15% di miglioramento delle prestazioni semplicemente ricompilando per 64-bit. (Supponendo che una parte dell'app sia legata al calcolo, ovviamente non è garantita, tutti i computer aspettano la stessa velocità.

6
Die in Sente

Citazione da Microsoft.com:

Nella tabella seguente, le maggiori risorse massime dei computer basate su versioni a 64 bit di Windows e il processore Intel a 64 bit vengono confrontate con i massimi delle risorse a 32 bit esistenti.

MS-Table

5

Con una macchina a 32 bit hai solo 4.294.967.295 byte di memoria da indirizzare. Con una macchina a 64 bit hai 1.84467441 × 10 ^ 19 byte di memoria.

Wikipedia dice questo

I processori a 64 bit calcolano operazioni particolari (come fattoriali di grandi dimensioni) due volte più veloci rispetto agli ambienti a 32 bit (dato l'esempio è derivato dal confronto tra 32-bit e 64-bit di Windows Calculator, evidenti per factorial di dire 100.000 ). Questo dà un'idea generale delle possibilità teoriche delle applicazioni ottimizzate a 64 bit.

Mentre le architetture a 64 bit fanno indiscutibilmente lavorare con grandi set di dati in applicazioni come video digitale, informatica scientifica e grandi database più facili, c'è stato un considerevole dibattito sul fatto che essi o le loro modalità di compatibilità a 32 bit saranno più veloci rispetto a prezzi comparabili Sistemi a 32 bit per altre attività. Nell'architettura x86-64 (AMD64), la maggior parte dei sistemi operativi e delle applicazioni a 32 bit sono in grado di funzionare senza problemi sull'hardware a 64 bit.

Le macchine virtuali Java a 64 bit di Sun sono più lente all'avvio rispetto alle macchine virtuali a 32 bit perché Sun ha implementato solo il compilatore JIT "server" (C2) per le piattaforme a 64 bit. [9] Il compilatore JIT "client" (C1), che produce codice meno efficiente ma compila molto più velocemente, non è disponibile su piattaforme a 64 bit.

Va notato che la velocità non è l'unico fattore da considerare in un confronto tra processori a 32 e 64 bit. Applicazioni come multitasking, stress test e clustering (per calcolo ad alte prestazioni), HPC, potrebbero essere più adatte a un'architettura a 64 bit data la corretta implementazione. I cluster a 64 bit sono stati ampiamente utilizzati in organizzazioni di grandi dimensioni come IBM, HP e Microsoft, per questo motivo.

5
Mark Cidade

Oltre ai già citati vantaggi, ecco alcuni altri aspetti relativi alla sicurezza:

  • i cpus x86_64 hanno il bit no-execute nelle loro tabelle di pagina. Cioè questo può impedire che gli exploit di secrity causino sovraccarichi di buffer. Cpus x86 a 32 bit supportano questa funzione solo in modalità PAE.
  • Uno spazio di indirizzi più ampio consente una migliore randomizzazione del layout di spazio degli indirizzi (ASLR) che rende più difficile lo sfruttamento dei sovraccarichi del buffer.
  • x86_64 caratteristica della cpus codice indipendente dalla posizione, cioè accesso ai dati relativo al registro dei puntatori delle istruzioni (RIP).

Un altro vantaggio che viene in mente è che la quantità di memoria virtuale contigua allocata con vmalloc() nel kernel di Linux può essere maggiore nella modalità a 64 bit.

5
knweiss

Kristof e Poshi hanno dichiarato le principali differenze tecniche tra i sistemi operativi a 32 e 64 bit "l'esperienza utente è in genere molto diversa dalla teoria. Le versioni consumer a 64 bit di Windows fino ad oggi (XP e Vista) hanno grandi buchi nel loro supporto per i driver. Ho avuto molte stampanti, scanner e altri dispositivi esterni non funzionanti con le versioni a 64 bit che funzionano bene con le versioni a 32 bit. Si tratta di dispositivi con driver a 64 bit e che comunque non funzionerebbero. A questo punto ti consiglierei di stare lontano da qualsiasi consumer based che sia a 64 bit da Microsoft fino a quando non saprai come funziona Windows 7, da veri utenti finali, non solo da uber-geek che attualmente hanno accesso ad esso. Dagli almeno 6 mesi e guarda cosa stanno vivendo le persone. Personalmente installerò l'aroma di Windows 7 a 32 bit, in quanto le mie versioni a 64 bit di Vista sono un peso di carta costoso che ho smesso di usare eoni fa e sono tornato a XP 32 bit.

4
Kevin K

Alcuni programmi di gioco usano una rappresentazione bit-board . Gli scacchi, le pedine e gli othello, ad esempio, hanno una scheda 8x8, cioè 64 quadrati, quindi avere almeno 64 bit in una parola macchina aiuta significativamente le prestazioni.

Ricordo di aver letto di un programma di scacchi la cui build a 64 bit era quasi doppia rispetto alla versione a 32 bit.

2
Hugh Allen

Il termine 32-bit e 64-bit si riferisce al modo in cui un processore del computer (chiamato anche CPU), gestisce le informazioni. Le versioni a 64 bit di Windows gestiscono grandi quantità di memoria ad accesso casuale (RAM) in modo più efficace rispetto ai sistemi a 32 bit.

la velocità potrebbe essere diversa secondo me

2
LestiWulan

Per scopi pratici, probabilmente non noterai alcuna differenza.

È necessario disporre di una CPU a 64 bit (la maggior parte delle CPU negli ultimi anni) per installare un sistema operativo a 64 bit.

Ci sono alcuni vantaggi in un sistema operativo a 64 bit:

  • Ti consentirà di eseguire più di 4 GB di RAM (il numero massimo che puoi indirizzare in un sistema operativo a 32 bit è 2 ^ 32 = 4 GB)
  • È utile per lavorare con insiemi di dati di grandi dimensioni (ad es. In Excel) e in determinati compiti intensamente computazionali (ad esempio Photoshop e file di grandi dimensioni)
  • È possibile eseguire un programma a 64 bit solo su un sistema operativo a 64 bit, ma su entrambi è possibile eseguire un programma a 32 bit (tenere presente che molti programmi vengono entrambi, quindi non ci sono troppi solo a 64 bit programmi).

Nella maggior parte degli scenari, i programmi a 64 bit utilizzano un po 'più di memoria, ma per un personal computer, questo in genere non viene notato.

1
cyberx86

Un altro punto in merito a Microsoft Windows è che per molti anni l'API Win32 è stata progettata per i sistemi operativi a 32 bit e non è ottimizzata per la compilazione a 64 bit. Quando scrivo alcune DLL per le mie applicazioni, generalmente compilo in Win32 che non è la versione a 64 bit delle cose. Prima di Vista, non ci sono state molte versioni di Windows a 64 bit di successo, come dove lavoro la mia nuova macchina ha 4 GB di RAM ma sto ancora usando Windows a 32 bit XP Pro in quanto è un O/S stabile noto rispetto a XP64 o Vista.

Penso che potresti voler anche guardare indietro quando c'è stato il passaggio da 16-bit a 32-bit per ulteriori dettagli sul perché il cambio potrebbe essere un grosso problema per alcune persone. Le applicazioni mission-critical che un'azienda può eseguire su un desktop, ad es. piccoli pacchetti di contabilità, potrebbero non funzionare su un sistema operativo a 64 bit e quindi c'è la necessità di mantenere una macchina legacy in giro, virtuale o reale.

Cambiare la dimensione di un indirizzo può avere grandi ramificazioni e ripercussioni.

1
JB King