És millor executar 32 o 64 bits?
Hi ha alguna bona raó per proporcionar una versió de 32 bits junt amb una versió de 64 bits de qualsevol programari objectiu a les màquines d'escriptori modernes, executant sistemes operatius moderns de 64 bits en el maquinari de 64 bits?
Sembla que el programari de 64 bits seria més eficient, permet un ús més gran de memòria si calgués, etc. Apple fins i tot utilitza processadors de 64 bits pels seus telèfons, tot i que només tenen 1-2 GB de RAM, de manera que per sota del límit de 4 GB per la CPU de 32 bits.
Dibuixa còpies del programari de 32 bits en entorns 64 bits
- 2 GB, 3 GB, o 4 GB de memòria límit per procés. (Només per procés, en suma múltiples processos de 32 bits poden usar la memòria completa disponible del sistema.)
- No s' usen les extensions de registre i instrucció addicionals establertes depenent de x64. Aquest és el compilador i específic de la CPU.
- Pot requerir versions de 32 bits de totes (la majoria de distribucions Linux) o de les més estranyes (la majoria de versions Windows) i s' executen entorns de temps. Si una versió de 32 bits d' una biblioteca compartida està carregada exclusivament per a la vostra aplicació, i això compta cap a la vostra petjada. No hi ha cap diferència si estàs enllaçant estàticament.
Altres aspectes
- Els controladors normalment no són un problema. Només les biblioteques d' espai d' usuari haurien de diferenciar entre 32 bits i 64 bits, no l' API dels mòduls del nucli.
La diferència entre el programari 32 bits i 64 bits és la mida dels punters, i potser la mida dels registres enters. Això és tot.
Això vol dir que tots els punters del vostre programa són dues vegades la mida. I (almenys en una arquitectura ILP32/LP64) llarg la s és el doble de la mida també. Això sol ser un increment del 30% en la mida del codi objecte. Això vol dir que...
- Heu abaixat efectivament la mida de la memòria cau d' instrucció per ~20%
Això té un efecte negatiu no-negligible en funció de l'actuació.
Fer-ho només té sentit si pots tornar a fer aquestes despeses de rendiment d'alguna manera. Bàsicament, hi ha dues maneres de fer-ho: feu moltes matemàtiques enteres de 64 bits, o necessiteu més de 4 GiBytent memòria. Si un d'ells és cert, té sentit usar 64 bits de programari, altrament no ho fa.
Nota: hi ha algunes arquitectura on no hi ha cap corresponent 32 o 64 variants. En aquest cas, la pregunta òbviament no té sentit. Els més coneguts són IA64, que només són 64 bits i no tenen 32 bits, i x86/AMD64 que són, tot i que molt relacionats, diferent Les arquitectura, x86 són només 32 bits, AD64 són només 64 bits.
De fet, aquesta última declaració ja no és del 100% cert. Linux recentment va afegir l'X32 ABI, que us permet executar un codi MD64 amb 32 punters bit, així que encara que no sigui una arquitectura de CPU "proper," és una manera d'utilitzar l'arquitectura AD64 d'una manera com si tingués una variant nativa 32 bits. Això es va fer precisament perquè El rendiment que he esmentat per sobre estava causant real Hi ha problemes importants per als usuaris reals del món executant el codi real del món en sistemes del món real.
Si el programari necessita interfície directament amb sistemes heretats, controladors o biblioteques, aleshores potser necessitareu subministrar una versió de 32 bits, ja que AFAIK el SO (definament Windows i Linux AFAIK) no permet la barreja de 64 bits i el codi de 32 bits en un procés.
Per exemple, si el vostre programari necessita accedir a l'especial maquinari, no és estrany que els clients operin models antics per als quals només estan disponibles 32 bits.
Si el teu programari és un DLL, tu MUSTAConstellation name (optional) Doneu ambdues versions de 32 bits i 64 bits. No tens ni idea de si el client farà servir un programari de 32 bits o 64 bits per parlar amb la DLL, i la DLL ha d'utilitzar el mateix temps que l'aplicació. Això és inneciable.
Si el vostre programari és un executable independent, és menys clar. Si no necessiteu el vostre programari per executar- lo amb SO més antics, potser no necessitareu proporcionar una versió de 32 bits. Segueix fins a 64 bits, especifiqueu que requereix un SO de 64 bits, i fet la feina.
No obstant això, si necessiteu el vostre programari per executar- lo amb SO més antics, podeu fer-ho activament NOT Vull proporcionar una versió de 64 bits. Si teniu dues versions aleshores teniu el doble de proves, i el programari de proves apropiadament a través d'un interval de versions i idiomes no és un procés ràpid. Com que el programari de 32 bits funciona perfectament feliç en una plataforma de 64 bits, encara és bastant comú per a software que sigui alliberat només com a 32 bits, especialment per a desenvolupadors menors.
A més, tingueu en compte que la majoria de mòbils són de 32 bits. Potser alguns d'alt termini són de 64 bits ara, però hi ha una petita raó convincent per fer aquest pas. Així doncs, si esteu desenvolupant la plataforma multiplataforma i podríeu voler que el vostre codi s'executeu a Android, així com mantenir 32 bits és una opció segura.
Artículos Relacionados:
- És millor executar un joc en 32 o 64 bits?
- Està bé en un processador de 64 bits?
- Millora el rendiment de 64 bits?
- Què vol dir un processador de 32 bits i 64 bits?
- Windows 10 Windows 64- bit o 32 bits?
- Processador -