Reklame

De fleste computere i dag leveres med en 64-bit version af Windows og ofte en minimal mængde RAM. Dette bringer spørgsmålstegn ved, hvor godt disse systemer fungerer. Dette gælder især, når brugerne vil køre deres ældre 32-bit software på disse nye computere.

Hvilket rejser et interessant spørgsmål. Gør du har brug for mere eller mindre RAM Hvor meget RAM har du virkelig brug for?RAM er som korttidshukommelse. Jo mere du multitasker, desto mere har du brug for. Find ud af, hvor meget din computer har, hvordan man får mest muligt ud af det, eller hvordan man får mere. Læs mere at køre en 32-bit applikation på en 64-bit version af Windows Hvad er 64-bit computing?Emballagen til en computer eller computerhardware er fyldt med tekniske udtryk og badges. En af de mere fremtrædende er 64-bit. Læs mere ? Denne uge finder Bruce Epper ud af det.

En læser spørger:

Er det rigtigt, at det at køre 32-bit apps på et 64-bit windows-system forbruger 1,5 gange mere hukommelse sammenlignet med at køre 32-bit-appen under et 32-bit Windows-operativsystem?

instagram viewer

Bruces svar:

Vi har tidligere drøftet fordele og ulemper ved at holde alt 64-bit overalt og nogle af dem effekter af "blanding og matching" Hvordan Windows-ydelse påvirkes af hardware og softwareI teorien kunne 32-bit software overgå dens 64-bit modstykke afhængigt af hardwareopsætningen. Lyder kompliceret? Vi er her for at give mening og hjælpe dig med at få den bedste ydelse ud af dit system. Læs mere . I dag skal vi undersøge, hvordan 32-bit applikationer kører på 64-bit versioner af Windows.

Et 64-bit Windows-operativsystem kan ikke køre et 32-bit Windows-program uden nogen hjælp. De er bare for forskellige: fra pegere og datatyper til hvordan systemopkald (hvordan programmer bruger ressourcerne i det underliggende operativsystem). Du har brug for en eller anden måde for at gøre dem kompatible.

Forståelse af WoW64

Windows bruger WoW64 (Windows32 på Windows64) undersystemet til at kompensere for forskellene. Det fungerer effektivt som en 32-bit Windows mini-emulator på x64-systemer og en fuldgyldig emulator på Itanium (IA64) -systemer.

IA64-systemer kræver en fuld emulator på grund af forskellene i processorinstruktioner og hukommelsessidestørrelser (4K i x86 og x64, 8K i IA64). Da x64-processorer har alle instruktionerne fra x86-processorer og bruger den samme hukommelsessidesstørrelse, har den ikke behov for en fuld emulator.

I begge tilfælde giver WoW64 en grænseflade mellem den 64-bit Windows-kerne og 32-bit-versionen af ​​ntdll.dll (dette indeholder en liste over kernen Windows-kernefunktioner), aflytning af kerneopkald og ændring af dem, så de kan behandles med de oprindelige 64-bit-funktioner, der leveres af Windows kerne.

Der er 3 DLL-filer, der bruges på x64 / IA64-systemer for at opnå dette: wow64cpu.dll, wow64win.dll og wow64.dll. Deres funktioner er at abstrahere processorens egenskaber og give tunker (vi kommer til dem senere) i win32k.sys, der giver "windows" -funktionaliteten og ntoskrnl.exe, som indeholder den udøvende, kernel, hukommelsesadministrator, procesplanlægning (må ikke forveksles med opgaveplanlægningen tilgængelig fra kontrolpanelet) og andre kerneelementer i betjeningen system.

indlæst-dlls

En tunk er en subroutine (tænk på disse som en række instruktioner, der udfører en enkelt opgave), der giver et program mulighed for at udføre en fælles subroutine eller en funktion i systemet.

I dette tilfælde udtrækker det argumenterne fra 32-bit-programmets opkaldsstabel, konverterer dem til deres 64-bit-modstykker og foretager 64-bit-systemopkaldet. Ved tilbagevenden fra opkaldet konverterer de 64-bit-resultaterne tilbage til 32-bit og skubber dem tilbage på programmets opkaldsstabel, så den, der ringer, kan bruge.

Al tunking udføres i brugertilstand (som har begrænsede tilladelser) af to grunde. Først minimerer det virkningen af ​​fejl i koden, der kan resultere i et sikkerhedshul, datakorruption eller et systemnedbrud, hvis de kører i kernel-mode.

For det andet reducerer det den ydelse, det ville have, hvis det kører i kernetilstand (den tilstand, der bruges af de væsentlige dele af operativsystemet) på grund af den involverede omkostning, når du skifter mellem brugertilstand og kernetilstand og tilbage.

Når vi går tilbage til Itanium-systemer, er der nogle andre vigtige forskelle at bemærke. IA64-systemer bruger to yderligere filer. IA32exec.bin er x86-softwareemulator, og Wowia32x.dll leverer grænsefladen mellem WoW64 og softwareemulatoren.

En 32-bit proces indlæser disse filer såvel som den 64-bit version af ntdll.dll. Dette er de eneste 64-bit-binære filer, der muligvis indlæses i en 32-bit-proces før Windows 7. Windows 7 og nyere har også en anden DLL, apisetschema.dll, som vil blive indlæst i alle processer.

proces-explorer

Når en 32-bit proces startes, indlæses den Wow64.dll, som igen indlæser 32-bit-versionen af ​​ntdll.dll og alle nødvendige 32-bit DLLs fra % SystemRoot% \ SysWOW64. De fleste af disse filer er identiske med binærerne på et 32-bit-system, selvom nogle er blevet omskrevet for at opføre sig anderledes under WOW64.

Ser vi på listen over indlæste DLL'er, kan vi se, at der er 9 DLL'er, der er indlæst i processen under Win64, der ikke er der for Win32-systemet.

Nu kan du blive fristet til at se på filstørrelserne, tilføje dem og bruge det som dit grundlag for hvor meget ekstra hukommelse der bruges, men du vil ende med upræcise resultater. Disse filer er efter deres art designet til at være delte komponenter, og som et resultat indlæser den første fil, der kræver en DLL, den i hukommelsen.

Efterfølgende programmer, der kræver den samme DLL, indlæser ikke hele komponenten i hukommelsen. De får en markør til den allerede indlæste komponent og tildeler RAM til de ekstra elementer, der er indlæst i processen.

Vores testopsætning

For at se, hvad der foregår, har jeg oprettet to virtuelle maskiner, der kører Windows 7 Ultimate med 2 GB RAM tildelt til hver. Den ene er 32-bit-versionen og den anden 64-bit. Begge gennemgik nøjagtig den samme installations- og lappeproces.

Efter at begge systemer var blevet opdateret, deaktiverede jeg swap-filen på begge for at få et bedre billede af hukommelsesforbruget ved at sikre, at RAM ikke kunne sendes ud til disken. Når dette var afsluttet, blev LibreOffice 5.0.3.2 installeret.

lo-calc

En kopi af Sysinternals Process Explorer Process Explorer - den mest kraftfulde udskiftning af Task Manager [Windows]Lad os være ærlige, Windows Task Manager er ikke så god til at forstå og styre processerne, der kører på din computer. Selv på Windows 8, hvor det er meget forbedret, kan task manager ikke komme tæt på ... Læs mere blev også placeret på begge maskiner. Dette er det værktøj, jeg brugte til at indsamle oplysninger om hukommelsesbrug. Standardkolonneopsætningen blev ændret, så jeg kunne se brugen af ​​Working Set og WS Private.

Disse arbejdsindstillingsnumre afspejler mængden af ​​RAM, der bruges af programmerne. Det komplicerede det lidt yderligere ved at reflektere mængden af ​​hukommelse, der blev brugt af delte biblioteker, selvom de allerede var indlæst af en anden proces. På grund af dette, hvis du tilføjer hele kolonnen, er det muligt at ende med en total større end installeret RAM. Arbejdsættet er stadig det bedste mål for nøjagtigt hvor meget hukommelse der kræves til en proces.

De processer, vi undersøger, står heller ikke alene. De forskellige LibreOffice-programmer starter en anden proces, soffice.exe, som vil udføre endnu en proces, soffice.bin. Vi er nødt til at se på totalerne i alle tre processer for at se effektiv hukommelsesanvendelse af hvert program.

Til den første test åbnede jeg simpelthen Writer, Calc og Impress individuelt for at se på, hvor meget hukommelse de forbruger, uden at der indlæses data og eksporteret dataene fra Process Explorer. Med Calc og Impress havde jeg åbnet en henholdsvis 3,7 MB .xls-fil og 3,9 MB .pptx-fil og registreret den nye hukommelsesforbrug. Resultaterne kan ses i nedenstående tabel. Alle data er i KB.

hukommelse-forbrug

Den store overraskelse skete med Impress. Uden et dokument brugte det 4,1% mere RAM på 64-bit-systemet og 9,9% mindre med dokumentet indlæst. Jeg gravede op et par andre præsentationer og havde lignende resultater med dem alle. 64-bit-systemet endte med at bruge mindre RAM end 32-bit-systemet.

Så kræver 64-bit versionerne af Windows mere RAM end deres 32-bit kolleger, når du kører 32-bit apps? Generelt, ja.

Men har du brug for at opgradere din RAM? Sikkert ikke. Forskellen virkelig er ikke så massiv. Det er bestemt ikke 1,5 gange anderledes.

Bruce har spillet med elektronik siden 70'erne, computere siden begyndelsen af ​​80'erne og svarer nøjagtigt på spørgsmål om teknologi, som han ikke har brugt eller set hele tiden. Han irriterer sig også ved at forsøge at spille guitar.