Har du brug for mere RAM til at køre 32-bit programmer på 64-bit Windows?

  • William Charles
  • 0
  • 4515
  • 115
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. Har du brug for mere eller mindre RAM Hvor meget RAM har du virkelig brug for? 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. til at køre en 32-bit applikation på en 64-bit version af Windows Hvad er 64-bit computing? 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. ? 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?

Bruces svar:

Vi har tidligere diskuteret fordele og ulemper ved at holde alt 64-bit overalt og nogle af virkningerne af “blanding og matching” Sådan påvirkes Windows-ydelsen af ​​hardware og software Sådan påvirkes Windows-ydelsen af ​​hardware og software I teorien kunne 32-bit software overgå dens 64-bits 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. . 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 ekstra 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 subsystemet WoW64 (Windows32 på Windows64) 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-processorerne har alle instruktioner fra x86-processorerne og bruger den samme hukommelsessidestø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 de centrale Windows-kernefunktioner), der opsamler kerneopkald og ændrer dem, så de kan behandles af de oprindelige 64-bit-funktioner, der leveres af Windows-kernen.

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) til win32k.sys, som giver “vindue” funktionalitet og ntoskrnl.exe, der indeholder den udøvende, kernel, hukommelsesadministrator, procesplanlægning (ikke at forveksle med opgaveplanlægningen tilgængelig fra kontrolpanelet) og andre kerneelementer i operativsystemet.

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. Efter tilbagevenden fra opkaldet konverterer de 64-bit-resultaterne tilbage til 32-bit og skubber dem tilbage på programmets opkaldsstabel, så den, der ringer op.

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

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 giver grænsefladen mellem WoW64 og softwareemulatoren.

En 32-bit proces indlæser disse filer såvel som 64-bit versionen 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 senere har også en anden DLL, apisetschema.dll, som vil blive indlæst i alle processer.

Når en 32-bit proces startes, indlæses den Wow64.dll, som igen indlæser 32-bit-versionen af ​​ntdll.dll og eventuelle 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 din basis 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.

En kopi af Sysinternals Process Explorer Process Explorer - Den mest kraftfulde Task Manager-udskiftning [Windows] Process Explorer - Den mest kraftfulde Task Manager-udskiftning [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å ... 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 den effektive hukommelsesanvendelse af hvert program.

Til den første test åbnede jeg simpelthen Writer, Calc og Impress hver 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.

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.




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.