Oglas
Večina računalnikov danes dobavlja 64-bitno različico sistema Windows in pogosto minimalno količino RAM-a. To postavlja pod vprašaj uspešnost teh sistemov. To še posebej velja, kadar želijo uporabniki te nove 32-bitne programske opreme zagnati v teh novih računalnikih.
Kar sproži zanimivo vprašanje. Ali ti potrebujejo več ali manj RAM-a Koliko RAM-a resnično potrebujete?RAM je kot kratkoročni pomnilnik. Več kot imate večopravilnosti, več jih potrebujete. Ugotovite, koliko ima vaš računalnik, kako najbolje izkoristiti ali kako več. Preberi več za zagon 32-bitne aplikacije na 64-bitna različica sistema Windows Kaj je 64-bitno računalništvo?Embalaža računalnika ali računalniške strojne opreme je natrpana s tehničnimi izrazi in znački. Eden vidnejših je 64-bitni. Preberi več ? Ta teden to izve Bruce Epper.
Bralec vpraša:
Ali je res, da zagon 32-bitnih aplikacij v 64-bitnem sistemu Windows porabi 1,5-krat več pomnilnika v primerjavi z zagonom 32-bitne aplikacije v 32-bitnem operacijskem sistemu Windows?
Bruceov odgovor:
Predhodno smo razpravljali o prednostih in pomanjkljivostih ohranjanja vsega 64-bitnega na plošči in nekaterih drugih učinki "mešanja in ujemanja" Kako strojna in programska oprema vpliva na delovanje sistema WindowsTeoretično bi 32-bitna programska oprema lahko presegla 64-bitni računalnik, odvisno od nastavitve strojne opreme. Zveni zapleteno? Tu smo, da bi imeli smisel in vam pomagali doseči najboljše zmogljivosti iz svojega sistema. Preberi več . Danes bomo preučili, kako se 32-bitne aplikacije izvajajo v 64-bitnih različicah sistema Windows.
64-bitni operacijski sistem Windows ne more zagnati 32-bitnega programa Windows brez dodatne pomoči. Preprosto se razlikujejo: od kazalcev in vrst podatkov do tega, kako sistem kliče (kako programi uporabljajo vire osnovnega operacijskega sistema). Potrebujete način, kako jih združiti.
Razumevanje WoW64
Windows za nadomestitev razlik uporablja podsistem WoW64 (Windows32 na Windows64). Učinkovito deluje kot 32-bitni mini emulator Windows v sistemih x64 in popoln emulator v sistemih Itanium (IA64).
Sistemi IA64 potrebujejo popoln emulator zaradi razlik v navodilih za procesor in velikosti pomnilniške strani (4K v x86 in x64, 8K v IA64). Ker imajo procesorji x64 vsa navodila procesorjev x86 in uporablja isto velikost pomnilniške strani, nima potrebe po popolnem emulatorju.
V obeh primerih WoW64 ponuja vmesnik med 64-bitnim jedrom Windows in 32-bitno različico ntdll.dll (vsebuje seznam jedra Funkcije jedra Windows), prestrezanje klicev jedra in spreminjanje le-teh, tako da jih lahko obdelujejo izvirne 64-bitne funkcije, ki jih nudi Windows jedro.
Za dosego tega obstajajo 3 datoteke DLL, ki se uporabljajo v sistemih x64 / IA64: wow64cpu.dll, wow64win.dll in wow64.dll. Njihove funkcije so abstrahiranje lastnosti procesorja in zagotavljanje groze (do njih bomo prišli pozneje) v win32k.sys, ki zagotavlja funkcijo "okno" in ntoskrnl.exe, ki vsebuje izvršni direktor, jedro, upravitelj pomnilnika, načrtovalnik procesov (ne zamenjujte ga z načrtovalcem opravil, ki je dostopen na nadzorni plošči) in drugimi osnovnimi elementi sistem.

Thunk je podprogram (razmišljajte o tem kot nizu navodil, ki izvajajo eno samo nalogo), ki programu omogoča izvajanje skupne podprograme ali funkcije v sistemu.
V tem primeru izvleče argumente iz sklada klicev 32-bitnega programa, jih pretvori v njihove 64-bitne kolege in izvede 64-bitni sistemski klic. Po vrnitvi s klica 64-bitne rezultate pretvori nazaj v 32-bitne in jih potisne nazaj v programsko zbirko klicev, ki jih kličoči lahko uporabi.
Vse prepisovanje poteka v uporabniškem načinu (ki ima omejena dovoljenja) iz dveh razlogov. Najprej zmanjša učinke napak v kodi, kar lahko povzroči varnostno luknjo, poškodbe podatkov ali zrušitev sistema, če deluje v jedru.
Drugič, zmanjšuje vpliv na delovanje, ki bi ga imel, če bi se izvajal v načinu jedra (način, ki ga uporabljajo bistveni deli operacijskega sistema) zaradi previsokih stroškov, ki so vključeni pri preklopu med uporabniški način in način jedra in nazaj.
Če se vrnemo k sistemom Itanium, je treba upoštevati še nekaj pomembnih razlik. IA64 sistemi uporabljajo dve dodatni datoteki. IA32exec.bin je programski emulator x86 in Wowia32x.dll nudi vmesnik med WoW64 in programskim emulatorjem.
32-bitni postopek bo naložil te datoteke, kot tudi 64-bitna različica ntdll.dll. To so edini 64-bitni binarni datoteki, ki se lahko naložijo v 32-bitni postopek pred Windows 7. V operacijskem sistemu Windows 7 in novejših različicah je še en DLL, apisetschema.dll, ki se bo naložil v vse procese.

Ko se začne 32-bitni postopek, bo naložil Wow64.dll, ki nato naloži 32-bitno različico ntdll.dll in vse potrebne 32-bitne DLL datoteke % systemroot% \ SysWOW64. Večina teh datotek je identičnih dvopredstavnim datotekam v 32-bitnem sistemu, čeprav so nekatere napisane tako, da se v WOW64 obnašajo drugače.
Če pogledamo seznam naloženih DLL-jev, lahko vidimo, da je v sistemu Win64 naloženih 9 DLL-jev, ki jih sistem Win32 še ni.
Zdaj bi vas morda zamikalo, da bi pogledali velikosti datotek, jih dodali in uporabili kot osnovo za porabo dodatnega pomnilnika, vendar bi na koncu prišli do netočnih rezultatov. Te datoteke so po svoji naravi zasnovane tako, da se delijo v sestavne dele, zato se prva datoteka, ki zahteva DLL, naloži v pomnilnik.
Poznejši programi, ki zahtevajo enak DLL, ne naložijo celotne komponente v pomnilnik. Dobijo kazalec na že naloženo komponento in dodelijo RAM za dodatne elemente, ki se naložijo v postopek.
Naš program za testiranje
Da bi videl, kaj se dogaja, sem postavil dva navidezna stroja, ki poganjata Windows 7 Ultimate z vsakim 2 GB RAM-a. Ena izmed njih je 32-bitna različica, druga pa 64-bitna. Obe sta šli skozi popolnoma enak postopek namestitve in popravkov.
Po tem, ko sta bila oba sistema zakrpana, sem onemogočila izmenjalno datoteko na obeh, da sem dobila boljšo sliko uporabe pomnilnika, tako da sem zagotovila, da RAM-a ni mogoče prestaviti na disk. Potem je bil nameščen program LibreOffice 5.0.3.2.

Kopija Sysinternals Process Explorer Proces Explorer - Zamenjava upravitelja opravil [Windows]Bodimo iskreni, upravitelj opravil Windows ni tako odličen za razumevanje in upravljanje procesov, ki se izvajajo v vašem računalniku. Tudi v operacijskem sistemu Windows 8, kjer je precej izboljšan, se upravitelj opravil ne more približati ... Preberi več je bil postavljen tudi na oba stroja. To je orodje, s katerim sem zbiral podatke o uporabi pomnilnika. Privzeta nastavitev stolpca je bila spremenjena, tako da sem si lahko ogledal delovni set in WS zasebno uporabo.
Te številke delovnega kompleta odražajo količino RAM-a, ki ga uporabljajo programi. Nekoliko bolj se je zapletlo, saj je odražalo količino pomnilnika, ki ga uporabljajo knjižnice v skupni rabi, tudi če jih že naloži drug postopek. Zaradi tega, če dodate celoten stolpec, je mogoče na koncu celota večja od nameščene RAM. Delovni set je še vedno najboljši merilec natanko tega, koliko pomnilnika je potrebnega za postopek.
Tudi procesi, ki jih preučujemo, niso samostojni. Različni programi LibreOffice zaženejo še en postopek, soffice.exe, ki bo izvedel še en postopek, soffice.bin. Za učinkovito uporabo pomnilnika vsakega programa moramo preučiti skupne vrednosti vseh treh procesov.
Za začetni preizkus sem preprosto odprl Writer, Calc in Impress, da sem si ogledal, koliko pomnilnika porabijo, ne da bi se podatki naložili in izvažali podatke iz Process Explorerja. S Calc in Impress sem odprl 3.7 MB .xls datoteko in 3.9 MB .pptx datoteko oziroma posnel novo porabo pomnilnika. Rezultate lahko vidite v spodnji tabeli. Vsi podatki so v KB.

Veliko presenečenje se je zgodilo pri Impressu. Brez dokumenta je v 64-bitnem sistemu porabil 4,1% več RAM-a in 9,9% manj z naloženim dokumentom. Izkopal sem nekaj drugih predstavitev in imel z vsemi podobnimi rezultati. 64-bitni sistem je na koncu porabil manj RAM-a kot 32-bitni sistem.
Ali 64-bitne različice operacijskega sistema Windows pri zagonu 32-bitnih programov zahtevajo več RAM-a kot 32-bitni računalniki? Na splošno da.
Ali morate nadgraditi RAM? Verjetno ne. Razlika res ni tako množičen Zagotovo ni 1,5-krat drugače.
Bruce se z elektroniko igra od 70. let naprej, z računalniki od zgodnjih 80-ih let in natančno odgovarja na vprašanja o tehnologiji, ki jih ves čas ni uporabljal niti videl. Prav tako se moti, ker poskuša igrati kitaro.