Mainos

Useimmissa tietokoneissa on nykyään 64-bittinen Windows-versio ja usein minimaalinen määrä RAM-muistia. Tämä asettaa kyseenalaiseksi näiden järjestelmien suorituskyvyn. Tämä on erityisen totta, kun käyttäjät haluavat käyttää vanhaa 32-bittistä ohjelmistoaan näissä uusissa tietokoneissa.

Mikä herättää mielenkiintoisen kysymyksen. Teetkö sinä tarvitsevat enemmän tai vähemmän RAM-muistia Kuinka paljon RAM-muistia todella tarvitset?RAM on kuin lyhytaikainen muisti. Mitä enemmän monitehtäviä, sitä enemmän tarvitset. Selvitä, kuinka paljon tietokoneellasi on, kuinka saada siitä irti tai kuinka saada enemmän. Lue lisää suorittaa 32-bittinen sovellus 64-bittinen Windows-versio Mikä on 64-bittinen tietojenkäsittely?Tietokoneen tai tietokonelaitteiden pakkaukset ovat täynnä teknisiä ehtoja ja merkkejä. Yksi näkyvimmistä on 64-bittinen. Lue lisää ? Tällä viikolla Bruce Epper selviää.

Lukija kysyy:

Onko totta, että 32-bittisten sovellusten käyttäminen 64-bittisessä Windows-järjestelmässä kuluttaa

1,5 kertaa enemmän muistia verrattuna 32-bittisen sovelluksen ajamiseen 32-bittisessä Windows-käyttöjärjestelmässä?

Brucen vastaus:

Olemme aiemmin keskustelleet eduista ja haitoista, jotka koskevat kaiken 64-bittisen ja kaiken muun pitämistä sekoittamisen ja sovittamisen vaikutukset Kuinka laitteistot ja ohjelmistot vaikuttavat Windows-suorituskykyynTeoriassa 32-bittinen ohjelmisto voisi ylittää 64-bittisen vastineensa laitteistoasetuksista riippuen. Kuulostaa monimutkaiselta? Olemme täällä järkeä ja autamme sinua saamaan parhaan suorituskyvyn järjestelmästäsi. Lue lisää . Tänään tutkimme, kuinka 32-bittiset sovellukset suorittavat Windowsin 64-bittisissä versioissa.

64-bittinen Windows-käyttöjärjestelmä ei voi käyttää 32-bittistä Windows-ohjelmaa ilman lisäapua. Ne ovat aivan liian erilaisia: osoittimista ja tietotyypeistä siihen, kuinka järjestelmä soittaa (kuinka ohjelmat käyttävät alla olevan käyttöjärjestelmän resursseja). Tarvitset jonkin verran tapoja tehdä niistä yhteensopivia.

WoW64: n ymmärtäminen

Windows käyttää WoW64 (Windows32 on Windows64) -alijärjestelmää erojen kompensoimiseksi. Se toimii tehokkaasti 32-bittisenä Windows-mini-emulaattorina x64-järjestelmissä ja täysimittaisena emulaattorina Itanium (IA64) -järjestelmissä.

IA64-järjestelmät vaativat täyden emulaattorin, koska prosessorin ohjeissa ja muistisivukokoissa on eroja (4K x86: ssa ja x64, 8K IA64: ssä). Koska x64-prosessoreilla on kaikki x86-prosessorien ohjeet ja ne käyttävät samaa muistisivukokoa, sillä ei ole tarvetta täydelliselle emulaattorille.

Molemmissa tapauksissa WoW64 tarjoaa käyttöliittymän 64-bittisen Windows-ytimen ja ntdll.dll: n 32-bittisen version välillä (tämä sisältää luettelon ytimestä Windows-ytintoiminnot), sieppaamalla ytökutsut ja muuttamalla niitä siten, että ne voidaan käsitellä Windowsin tarjoamista alkuperäisistä 64-bittisistä toiminnoista ydin.

X64 / IA64-järjestelmissä käytetään 3 DLL-tiedostoa tämän saavuttamiseksi: wow64cpu.dll, wow64win.dll ja wow64.dll. Niiden tehtävänä on abstrakti prosessorin ominaisuudet ja tarjota thunks (pääsemme heille myöhemmin) osaksi Win32k.sys, joka tarjoaa “ikkuna” -toiminnon, ja ntoskrnl.exe, joka sisältää toimeenpanoelimen, ytimen, muistinhallinnan, prosessiaikataulu (ei pidä sekoittaa ohjauspaneelista saatavissa olevaan Task Scheduler -sovellukseen) ja muut operaation ydinosat järjestelmään.

ladattu-DLL

Henkilö on aliohjelma (ajattele näitä ohjeiden sarjana, joka suorittaa yhden tehtävän), jonka avulla ohjelma voi suorittaa järjestelmän yleisen aliohjelman tai toiminnon.

Tällöin se poimii argumentit 32-bittisen ohjelman puhelupinosta, muuntaa ne 64-bittisiksi vastineiksi ja soittaa 64-bittisen järjestelmän puhelun. Palattuaan puhelusta se muuntaa 64-bittiset tulokset takaisin 32-biteiksi ja työntää ne takaisin ohjelman soittopinoon, jota soittaja voi käyttää.

Kaikki thunking tehdään käyttäjätilassa (jolla on rajoitetut oikeudet) kahdesta syystä. Ensinnäkin, se minimoi koodivirheiden vaikutukset, jotka voivat johtaa tietoturvaaukkoon, tietojen vioittumiseen tai järjestelmän kaatumiseen, kun ne suoritetaan ytimen tilassa.

Toiseksi se vähentää suorituskykyvaikutuksia, joita sillä olisi käydessäsi ytimen tilassa (käyttöjärjestelmän tärkeiden osien käyttämä tila), johtuen yläpuolella vaihdettaessa käyttäjätila ja ytimen tila ja takaisin.

Palaamalla Itanium-järjestelmiin on joitain muita tärkeitä eroja, jotka on huomattava. IA64-järjestelmät käyttävät kahta ylimääräistä tiedostoa. IA32exec.bin on x86-ohjelmistoemulaattori ja Wowia32x.dll tarjoaa rajapinnan WoW64: n ja ohjelmistosimulaattorin välille.

32-bittinen prosessi lataa nämä tiedostot samoin kuin ntdll.dll: n 64-bittinen versio. Nämä ovat ainoat 64-bittiset binäärit, jotka voidaan ladata 32-bittiseen prosessiin ennen Windows 7: tä. Windows 7: ssä ja uudemmissa on myös toinen DLL, apisetschema.dll, joka ladataan kaikkiin prosesseihin.

prosessi resurssienhallinta

Kun 32-bittinen prosessi käynnistetään, se lataa Wow64.dll-tiedoston, joka puolestaan ​​lataa ntdll.dll-tiedoston 32-bittisen version ja tarvittavat 32-bittiset DLL-tiedostot % Systemroot% \ SysWOW64. Suurin osa näistä tiedostoista on identtisiä 32-bittisen järjestelmän binääritiedostojen kanssa, vaikka jotkut niistä on kirjoitettu uudelleen käyttäytymään eri tavoin WOW64-järjestelmässä.

Kun tarkastellaan ladattujen DLL-tiedostojen luetteloa, voimme nähdä, että Win64-järjestelmässä on ladattu 9 DLL-tiedostoa, joita ei ole Win32-järjestelmässä.

Nyt saatat olla houkutus tutkia tiedostokoot, lisätä ne ja käyttää sitä perustana kuinka paljon ylimääräistä muistia käytetään, mutta lopputulos on epätosi. Nämä tiedostot on luonteeltaan suunniteltu jaetuiksi komponenteiksi, minkä seurauksena ensimmäinen DLL-tiedostoa vaativa tiedosto lataa sen muistiin.

Seuraavat ohjelmat, jotka vaativat saman DLL-tiedoston, eivät lataa koko komponenttia muistiin. He saavat osoittimen jo ladatulle komponentille ja allokoivat RAM-muistin lisäelementeille, jotka ladataan prosessiin.

Testausasetus

Olen nähnyt, mitä tapahtuu, olen asentanut kaksi virtuaalikonetta, joissa on Windows 7 Ultimate, ja jokaiselle on varattu 2 Gt RAM-muistia. Yksi niistä on 32-bittinen versio ja toinen 64-bittinen. Molemmat kävivät läpi täsmälleen saman asennus- ja korjausprosessin.

Kun molemmat järjestelmät on korjattu, poistin vaihto-tiedoston molemmilta saadaksesi paremman kuvan muistin käytöstä varmistamalla, että RAM-muistia ei voi hakea levylle. Kun tämä oli valmis, LibreOffice 5.0.3.2 oli asennettu.

lo-calc

Kopio Sysinternals Process Explorer Process Explorer - Tehokkain tehtävänhallinnan vaihto [Windows]Olkaamme rehellisiä, Windowsin Tehtävienhallinta ei ole kovin suuri tietokoneellasi käynnissä olevien prosessien ymmärtämiseen ja hallintaan. Jopa Windows 8: ssa, jossa sitä on paljon parannettu, tehtävähallinta ei voi saavuttaa ... Lue lisää sijoitettiin myös molemmille koneille. Tämä on työkalu, jolla olen kerännyt muistin käyttöä koskevia tietoja. Oletussarakeasetuksia muutettiin, jotta voisin tarkastella Working Set- ja WS Private -käyttöä.

Nämä työjoukonumerot heijastavat ohjelmien käyttämää RAM-määrää. Se monimutkaisti vielä hieman heijastamalla jaettujen kirjastojen käyttämää muistimäärää, vaikka ne olisi jo ladattu toisella prosessilla. Tästä syystä, jos lisäät koko sarakkeen, on mahdollista saada kokonaismäärä suurempi kuin asennettu RAM. Toimilaite on edelleen paras mittari siitä, kuinka paljon muistia prosessia varten tarvitaan.

Tutkittavat prosessit eivät myöskään ole itsenäisiä. Eri LibreOffice-ohjelmat käynnistävät toisen prosessin, soffice.exe, joka suorittaa uuden prosessin, soffice.bin. Meidän on tarkasteltava kaikkien kolmen prosessin kokonaismäärää nähdäksemme kunkin ohjelman tehokkaan muistin käytön.

Ensimmäistä testiä varten avasin vain Writer-, Calc- ja Impress-ohjelmat erikseen tarkastellaksesi kuinka paljon muistia ne kuluttavat ilman, että tietoja ladataan ja viedään tietoja Process Explorerista. Calc- ja Impress-ohjelmien avulla olin avannut vastaavasti 3,7 MB .xls-tiedoston ja 3,9 MB .pptx-tiedoston ja tallentanut uuden muistin käytön. Tulokset näkyvät alla olevassa taulukossa. Kaikki tiedot ovat kt-muodossa.

muistin käyttö

Suuri yllätys tapahtui Impressin kanssa. Ilman asiakirjaa se käytti 4,1% enemmän RAM-muistia 64-bittisessä järjestelmässä ja 9,9% Vähemmän asiakirjan ollessa ladattu. Kaivoin muutaman muun esityksen ja sain kaikkien kanssa samanlaisia ​​tuloksia. 64-bittinen järjestelmä lopulta käytti vähemmän RAM-muistia kuin 32-bittinen järjestelmä.

Joten tarvitaanko 64-bittisissä Windows-versioissa enemmän RAM-muistia kuin niiden 32-bittisissä versioissa ajaessaan 32-bittisiä sovelluksia? Yleensä kyllä.

Mutta onko sinun päivittää RAM-muistia? Luultavasti ei. Ero Todella ei ole niin massiivinen. Se ei todellakaan ole 1,5 kertaa erilainen.

Bruce on pelannut elektroniikalla 70-luvulta lähtien, tietokoneilla 80-luvun alusta, ja vastannut tarkasti tekniikkakysymyksiin, joita hän ei ole käyttänyt eikä nähnyt koko ajan. Hän ärsyttää itseään myös yrittämällä soittaa kitaraa.