Trebate li više RAM-a za pokretanje 32-bitnih programa na 64-bitnim Windowsima?

  • Mark Lucas
  • 0
  • 4678
  • 592
Oglas

Većina računala danas isporučuje s 64-bitnom verzijom Windowsa i često s minimalnom količinom RAM-a. To dovodi u pitanje uspješnost ovih sustava. To je osobito istinito kada korisnici na ovim novim računalima žele pokrenuti naslijeđeni 32-bitni softver.

Što postavlja zanimljivo pitanje. Treba li vam više ili manje RAM-a Koliko vam RAM-a stvarno treba? Koliko RAM-a vam stvarno treba? RAM memorija je poput kratkotrajne memorije. Što više zadajete više zadataka, više vam treba. Saznajte koliko vašeg računala ima, kako najbolje iskoristiti ili kako dobiti više. pokrenuti 32-bitnu aplikaciju na 64-bitnoj verziji sustava Windows Što je 64-bitno računanje? Što je 64-bitno računanje? Pakiranje računala ili računalnog hardvera pretrpano je tehničkim izrazima i značkama. Jedan od istaknutijih je 64-bitni. ? Ovaj tjedan to doznaje Bruce Epper.

Čitatelj pita:

Je li istina da trošenje 32-bitnih aplikacija na 64-bitnom Windows sustavu troši 1,5 puta više memorije u usporedbi s pokretanjem 32-bitne aplikacije u 32-bitnom Windows operativnom sustavu?

Bruceov odgovor:

Prethodno smo razgovarali o prednostima i nedostacima čuvanja svega 64-bitnog preko ploče i nekim od učinaka “miješanje i slaganje” Kako utječe na hardver i softver kako na performanse sustava Windows utječe hardver i softver Teoretski, 32-bitni softver mogao bi nadmašiti 64-bitni kolega, ovisno o hardverskom programu. Zvuči komplicirano? Ovdje smo da bismo imali smisla i pomogli vam da postignete najbolje performanse iz svog sustava. , Danas ćemo istražiti kako se 32-bitne aplikacije izvršavaju na 64-bitnim verzijama sustava Windows.

64-bitni Windows operativni sustav ne može pokrenuti 32-bitni Windows program bez dodatne pomoći. Oni su jednostavno previše različiti: od pokazivača i vrsta podataka, do načina na koji sustav poziva (kako programi koriste resurse temeljnog operativnog sustava). Trebate neki način da ih kompatibilni.

Razumijevanje WoW64

Da bi nadoknadio razlike, Windows koristi podsustav WoW64 (Windows32 na Windows64). Učinkovito radi kao 32-bitni Windows mini emulator na x64 sustavima i punopravni emulator na Itanium (IA64) sustavima.

Sustavi IA64 zahtijevaju potpuni emulator zbog razlika u uputama procesora i veličinama memorijskih stranica (4K u x86 i x64, 8K u IA64). Budući da procesori x64 imaju sve upute x86 procesora i koristi istu veličinu memorijske stranice, nema potrebe za potpunim emulatorom.

U oba slučaja, WoW64 pruža sučelje između 64-bitnog Windows kernela i 32-bitne verzije ntdll.dll (sadrži popis osnovnih funkcija Windows kernel), presijecajući pozive kernela i mijenjajući ih kako bi ih mogli obraditi izvorne 64-bitne funkcije koje pruža Windows kernel.

Postoje 3 DLL datoteke koje se koriste u sustavima x64 / IA64 da bi se to postiglo: wow64cpu.dll, wow64win.dll i wow64.dll. Njihove su funkcije apstraktiranje karakteristika procesora i stvaranje kretnji (doći ćemo do njih kasnije) u win32k.sys koji pruža “prozor” funkcionalnost i ntoskrnl.exe koji sadrži izvršni direktor, jezgru, upravitelj memorije, planer procesa (ne smije se brkati s Planerom zadataka dostupnim s Upravljačke ploče) i ostale temeljne elemente operativnog sustava.

Skup je potprogram (misli se na to kao na niz uputa koje izvode jedan zadatak) koji omogućuje programu da izvrši zajedničku potprogram ili funkciju u sustavu.

U ovom slučaju, izvlači argumente iz skupa poziva 32-bitnog programa, pretvara ih u njihove 64-bitne partnere i vrši 64-bitni sistemski poziv. Nakon povratka s poziva, 64-bitni rezultati će se pretvoriti u 32-bitne i vratiti ih u programsku paletu poziva da bi pozivatelj mogao koristiti.

Sva provala vrši se u korisničkom načinu (koji ima ograničena dopuštenja) iz dva razloga. Prvo, smanjuje učinke grešaka u kodu što može rezultirati sigurnosnom rupom, oštećenjem podataka ili pad sustava ako se izvodi u kernel modu.

Drugo, smanjuje učinak performansi koji bi imao ako se izvodi u načinu kernela (način koji koriste bitni dijelovi operativnog sustava) zbog prekomjernih troškova koji prelaze iz korisničkog načina u način rada kernela i natrag.

Vraćajući se na Itanium sustave, postoje neke druge važne razlike. IA64 sustavi koriste dvije dodatne datoteke. IA32exec.bin je softver za emulaciju x86, a Wowia32x.dll pruža sučelje između WoW64 i softverskog emulatora.

32-bitni proces učitavat će te datoteke kao i 64-bitna verzija ntdll.dll. Ovo su jedini 64-bitni binarni podaci koji se mogu učitati u 32-bitni proces prije Windowsa 7. Windows 7 i noviji također imaju još jedan DLL, apisetschema.dll, koji će se učitavati u sve procese.

Kad se pokrene 32-bitni proces, on će učitati Wow64.dll koji zauzvrat učita 32-bitnu verziju ntdll.dll i sve potrebne 32-bitne DLL datoteke iz % Systemroot% \ SysWOW64. Većina je ovih datoteka identična binarnim datotekama na 32-bitnom sustavu, iako su neke napisane tako da se ponašaju drugačije u WOW64.

Gledajući popis učitanih DLL-ova vidimo da je u procesu Win64 učitanih 9 DLL-ova koji nisu tamo za sustav Win32.

E sad, možda ćete biti u iskušenju da pogledate veličine datoteka, dodate ih i iskoristite to kao osnovu za uporabu dodatne memorije, ali na kraju ćete dobiti netačne rezultate. Ove su datoteke, po svojoj prirodi, dizajnirane za dijeljenje komponenata i kao rezultat, prva datoteka koja zahtijeva DLL učitava je u memoriju.

Naknadni programi koji zahtijevaju isti DLL ne učitavaju cijelu komponentu u memoriju. Oni dobivaju pokazivač na već učitanu komponentu i dodjeljuju RAM za dodatne elemente koji se učitavaju u proces.

Naša postava za testiranje

Kako bih vidio što se događa, postavio sam dva virtualna stroja na kojima je pokrenut Windows 7 Ultimate s po 2 GB RAM-a dodijeljen svakom. Jedna od njih je 32-bitna verzija, a druga 64-bitna. Oboje su prošli potpuno isti postupak instalacije i krpljenja.

Nakon što su oba sustava zakrpljena, onemogućio sam swap datoteku na oba kako bih dobio bolju sliku korištenja memorije osiguravajući da RAM-a ne može biti pozicionirano na disk. Nakon toga je instaliran program LibreOffice 5.0.3.2.

Kopija Sysinternals Process Explorer Proces preglednika - Najmoćnija zamjena upravitelja zadataka [Windows] Provjera procesa - Najmoćnija zamjena upravitelja zadataka [Windows] Budimo iskreni, Windows upravitelj zadataka nije tako dobar za razumijevanje i upravljanje procesima koji se izvode na vašem računalu. Čak i na Windows 8, gdje je znatno poboljšan, upravitelj zadataka ne može se približiti… također je postavljen na oba stroja. Ovo je alat koji sam koristio za prikupljanje podataka o upotrebi memorije. Zadana postavka stupaca je promijenjena kako bih mogao pogledati radni set i WS privatnu upotrebu.

Ti brojevi radnog skupa odražavaju količinu RAM-a koji programi koriste. Nešto se dodatno zakompliciralo odražavajući količinu memorije koju koriste zajedničke knjižnice, čak i ako ih je već učitao neki drugi postupak. Zbog toga, dodate li cijeli stupac, moguće je završiti s ukupnim brojem veći od instalirane RAM-a. Radni set je i dalje najbolje mjerilo koliko je memorije potrebno za postupak.

Postupci koje ispitujemo nisu ni sami. Različiti programi LibreOffice pokreću još jedan postupak, soffice.exe, koji će izvesti još jedan postupak, soffice.bin. Trebamo promatrati ukupno sva tri procesa da bismo vidjeli učinkovitu upotrebu memorije svakog programa.

Za početni test jednostavno sam otvorio Writer, Calc i Impress pojedinačno kako bih pogledao koliko memorije zauzimaju, a da se ne učitaju i izvezu podaci iz Process Explorera. S Calcom i Impressom otvorio sam 3.7 MB .xls datoteku i 3.9 MB .pptx datoteku, i zabilježio novu upotrebu memorije. Rezultati se mogu vidjeti u tablici ispod. Svi podaci su u KB.

Veliko iznenađenje dogodilo se s Impressom. Bez dokumenta koristila je 4,1% više RAM-a na 64-bitnom sustavu i 9,9% manje s učitanim dokumentom. Iskopao sam nekoliko drugih prezentacija i sa svima njima imao slične rezultate. 64-bitni sustav završio je s manje RAM-a od 32-bitnog sustava.

Pa, zahtijeva li 64-bitne verzije sustava Windows više RAM-a od svojih 32-bitnih kolega pri pokretanju 32-bitnih aplikacija? Općenito, da.

Ali trebate li nadograditi RAM? Vjerojatno ne. Razlika stvarno nije tako masivno. Sigurno nije 1,5 puta drugačije.




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.