reklama
Většina počítačů se dnes dodává s 64bitovou verzí systému Windows a často s minimálním množstvím paměti RAM. To zpochybňuje, jak dobře tyto systémy fungují. To platí zejména v případě, že uživatelé chtějí na těchto nových počítačích spustit svůj starší 32bitový software.
Což vyvolává zajímavou otázku. Děláš? potřebují více či méně RAM Kolik paměti RAM skutečně potřebujete?RAM je jako krátkodobá paměť. Čím více budete multitask, tím více budete potřebovat. Zjistěte, kolik má váš počítač, jak z něj vytěžit maximum, nebo jak získat více. Přečtěte si více spustit 32bitovou aplikaci na a 64bitová verze systému Windows Co je to 64bitový výpočet?Balení počítače nebo počítačového hardwaru je přeplněno technickými pojmy a odznaky. Jeden z nejvýznamnějších je 64bitový. Přečtěte si více ? Tento týden to zjistí Bruce Epper.
Čtenář se ptá:
Je pravda, že spuštění 32bitových aplikací v 64bitovém systému Windows spotřebuje 1,5krát více paměti ve srovnání se spuštěním 32bitové aplikace v 32bitovém operačním systému Windows?
Bruceova odpověď:
Dříve jsme diskutovali o výhodách a nevýhodách udržení všeho 64-bitů napříč deskou a některých účinky „míchání a porovnávání“ Jak hardware a software ovlivňuje výkon systému WindowsTeoreticky by 32bitový software mohl překonat svůj 64bitový protějšek v závislosti na nastavení hardwaru. Zní to komplikovaně? Jsme tu proto, abychom vám dali smysl a pomohli vám získat nejlepší výkon z vašeho systému. Přečtěte si více . Dnes se chystáme prozkoumat, jak se 32bitové aplikace spouštějí v 64bitových verzích Windows.
64bitový operační systém Windows nemůže spustit 32bitový program Windows bez nějaké další pomoci. Jsou prostě příliš odlišné: od ukazatelů a datových typů až k tomu, jak systémová volání (jak programy využívají zdroje základního operačního systému). Potřebujete nějaký způsob, jak zajistit jejich kompatibilitu.
Porozumění WoW64
Windows používá ke kompenzaci rozdílů subsystém WoW64 (Windows32 na Windows64). Účinně funguje jako 32bitový mini emulátor Windows v systémech x64 a plnohodnotný emulátor v systémech Itanium (IA64).
Systémy IA64 vyžadují plný emulátor kvůli rozdílům v instrukcích procesoru a velikosti stránky paměti (4 kB v x86 a x64, 8 kB v IA64). Protože procesory x64 mají všechny instrukce procesorů x86 a používají stejnou velikost stránky paměti, není třeba plného emulátoru.
V obou případech poskytuje WoW64 rozhraní mezi 64bitovým jádrem Windows a 32bitovou verzí ntdll.dll (obsahuje seznam jádra) Funkce jádra systému Windows), zachycující volání jádra a jejich změny tak, aby mohly být zpracovány nativními 64bitovými funkcemi poskytovanými Windows jádro.
K dosažení tohoto cíle jsou v systémech x64 / IA64 používány 3 soubory DLL: wow64cpu.dll, wow64win.dll a wow64.dll. Jejich funkcí je abstraktní charakteristika procesoru a poskytování thunků (dostaneme se k nim později) do win32k.sys, který poskytuje funkci „okna“ a ntoskrnl.exe, který obsahuje výkonný program, jádro, správce paměti, plánovač procesů (nelze zaměňovat s Plánovačem úloh přístupným z ovládacího panelu) a dalšími základními prvky operačního systému Systém.
Thunk je podprogram (považujte je za řadu instrukcí provádějících jednu úlohu), která umožňuje programu provádět v systému běžný podprogram nebo funkci.
V tomto případě extrahuje argumenty ze zásobníku volání 32bitového programu, převede je na jejich 64bitové protějšky a provede 64bitové systémové volání. Po návratu z hovoru převede 64bitové výsledky zpět na 32 bitů a vrátí je zpět do zásobníku volání programu, aby jej mohl volající použít.
Všechny thunking se provádí v uživatelském režimu (který má omezená oprávnění) ze dvou důvodů. Nejprve minimalizuje účinky chyb v kódu, které by mohly mít za následek bezpečnostní díru, poškození dat nebo selhání systému, pokud jsou spuštěny v režimu jádra.
Za druhé, snižuje výkonový dopad, který by měl, kdyby běžel v režimu jádra (režim používaný základními částmi operačního systému) kvůli režijnímu zatížení při přepínání mezi uživatelský režim a režim jádra a zpět.
Vrátíme-li se k systémům Itanium, je třeba poznamenat i některé další důležité rozdíly. Systémy IA64 používají dva další soubory. IA32exec.bin je softwarový emulátor x86 a Wowia32x.dll poskytuje rozhraní mezi WoW64 a softwarovým emulátorem.
32bitový proces načte tyto soubory a také 64bitovou verzi ntdll.dll. Toto jsou pouze 64bitové binární soubory, které mohou být načteny do 32bitového procesu před systémem Windows 7. Windows 7 a novější mají také další DLL, apisetschema.dll, které budou načteny do všech procesů.
Při spuštění 32bitového procesu načte Wow64.dll, který zase načte 32bitovou verzi ntdll.dll a všechny potřebné 32bitové DLL z % systemroot% \ SysWOW64. Většina z těchto souborů je totožná s binárními soubory na 32bitovém systému, i když některé byly přepsány tak, aby se v rámci WOW64 chovaly odlišně.
Při pohledu na seznam načtených DLL vidíme, že v procesu pod Win64 je načteno 9 DLL, které pro systém Win32 neexistují.
Nyní byste mohli být v pokušení podívat se na velikosti souborů, přidat je a použít je jako základ pro to, kolik další paměti je využíváno, ale nakonec byste skončili s nepřesnými výsledky. Tyto soubory jsou svou povahou navrženy jako sdílené součásti a v důsledku toho je první soubor vyžadující DLL načte do paměti.
Následující programy, které vyžadují stejnou DLL, nenačtou celou součást do paměti. Dostanou ukazatel na již načtenou součást a přidělí RAM pro další prvky, které jsou načteny do procesu.
Naše nastavení testování
Abych viděl, co se děje, zřídil jsem dva virtuální počítače se systémem Windows 7 Ultimate s 2 GB RAM přidělené každému. Jedním z nich je 32bitová verze a druhá 64bitová. Oba prošli stejným procesem instalace a opravy.
Poté, co byly oba systémy propojeny, zakázal jsem odkládací soubor na obou, abych získal lepší obrázek o využití paměti zajištěním, že RAM nebude možné stránkovat na disk. Po dokončení instalace byl nainstalován software LibreOffice 5.0.3.2.
Kopie Průzkumník procesů Sysinternals Process Explorer - nejúčinnější náhrada Správce úloh [Windows]Buďme upřímní, Správce úloh systému Windows není tak skvělý pro porozumění a správu procesů spuštěných v počítači. Dokonce i ve Windows 8, kde je mnohem vylepšen, se správce úloh nemůže přiblížit ... Přečtěte si více byl také umístěn na oba stroje. Toto je nástroj, který jsem použil ke shromažďování informací o využití paměti. Výchozí nastavení sloupce bylo změněno, takže jsem se mohl podívat na použití pracovní sady a WS Private.
Tato čísla pracovních sad odrážejí množství paměti RAM používané programy. Trochu se to komplikovalo tím, že se odrazilo množství paměti používané sdílenými knihovnami, i když již byly načteny jiným procesem. Z tohoto důvodu, pokud přidáte celý sloupec, je možné skončit celkem větší než nainstalovaná RAM. Pracovní sada je stále nejlepším měřítkem toho, kolik paměti je pro proces zapotřebí.
Ani procesy, které zkoumáme, nejsou samy o sobě. Různé programy LibreOffice spouští další proces, soffice.exe, který provede další proces, soffice.bin. Musíme se podívat na součty všech tří procesů, abychom viděli efektivní využití paměti každého programu.
Pro počáteční test jsem jednoduše otevřel Writer, Calc a Impress individuálně, abych se podíval na to, kolik paměti spotřebují, aniž by byla načtena a exportována data z Process Explorer. S Calc a Impress jsem otevřel 3,7 MB. Xls soubor a 3,9 MB. PPTX soubor, respektive a zaznamenal nové využití paměti. Výsledky jsou uvedeny v následující tabulce. Všechna data jsou v KB.
K velkému překvapení došlo u Impressu. Bez dokumentu používal v 64bitovém systému více RAM o 4,1% a 9,9% méně s načteným dokumentem. Vykopal jsem několik dalších prezentací a měl jsem s nimi všechny podobné výsledky. 64bitový systém nakonec používal méně RAM než 32bitový systém.
Vyžadují tedy 64bitové verze systému Windows při spuštění 32bitových aplikací více paměti RAM než jejich 32bitové protějšky? Obecně ano.
Ale potřebujete upgradovat RAM? Asi ne. Rozdíl opravdu není tak masivní. Rozhodně to není 1,5krát odlišné.
Bruce hraje s elektronikou od 70. let, s počítači od počátku 80. let a přesně odpovídá na otázky o technologii, kterou celou dobu nepoužíval ani neviděl. Také se otráví tím, že se pokouší hrát na kytaru.