Aveți nevoie de mai mult RAM pentru a rula programe pe 32 de biți pe Windows pe 64 de biți?

Aveți nevoie de mai mult RAM pentru a rula programe pe 32 de biți pe Windows pe 64 de biți? / Întrebați experții

Cele mai multe computere de astăzi sunt livrate cu o versiune de Windows pe 64 de biți, adesea o cantitate minimă de RAM. Acest lucru pune sub semnul întrebării cât de bine funcționează aceste sisteme. Acest lucru este valabil mai ales când utilizatorii doresc să ruleze software-ul pe 32 de biți pe aceste noi computere.

Ceea ce ridică o întrebare interesantă. Aveți nevoie de mai mult sau mai puțin RAM Cât de mult aveți nevoie de RAM? Cât de mult aveți nevoie de RAM? RAM este ca o memorie pe termen scurt. Cu cât vă multitasc mai mult, cu atât mai mult aveți nevoie. Aflați cât de mult are computerul dvs., cum puteți obține cât mai mult din el sau cum puteți obține mai mult. Citiți mai multe pentru a rula o aplicație pe 32 de biți pe o versiune pe 64 de biți a Windows Ce este computing pe 64 de biți? Ce este computing pe 64 de biți? Ambalarea unui computer sau a unui computer este aglomerată cu termeni și ecusoane tehnice. Una dintre cele mai proeminente este de 64 de biți. Citeste mai mult ? În această săptămână, Bruce Epper află.

Un cititor întreabă:

Este adevărat că folosirea aplicațiilor pe 32 de biți pe un sistem de ferestre pe 64 de biți consumă De 1,5 ori mai multă memorie în comparație cu rularea aplicației pe 32 de biți într-un sistem de operare Windows pe 32 de biți?

Răspunsul lui Bruce:

Am discutat anterior despre beneficiile și dezavantajele păstrării tuturor aspectelor pe 64 de biți și a efectelor acestora “amestecare și potrivire” Modul în care performanța Windows este afectată de hardware și software Modul în care performanța Windows este afectată de hardware și software În teorie, software-ul pe 32 de biți ar putea depăși performanța sa pe 64 de biți, în funcție de configurația hardware. Sună complicat? Suntem aici pentru a avea sens și pentru a vă ajuta să obțineți cea mai bună performanță din sistemul dvs. Citeste mai mult . Astăzi vom examina modul în care aplicațiile pe 32 de biți se execută pe versiunile pe 64 de biți ale Windows.

Un sistem de operare Windows pe 64 de biți nu poate rula un program Windows pe 32 de biți fără ajutor suplimentar. Ele sunt doar prea diferite: de la indicatori și tipuri de date, la modul în care apelurile de sistem (modul în care programele utilizează resursele sistemului de operare de bază). Aveți nevoie de un mod de a le face compatibile.

Înțelegerea WoW64

Windows utilizează subsistemul WoW64 (Windows32 în Windows64) pentru a compensa diferențele. Ea funcționează eficient ca un mini-emulator Windows pe 32 de biți pe sisteme x64 și un emulator cu drepturi depline pe sistemele Itanium (IA64).

Sistemele IA64 necesită un emulator complet datorită diferențelor dintre instrucțiunile procesorului și dimensiunile paginilor de memorie (4K în x86 și x64, 8K în IA64). Deoarece procesoarele x64 au toate instrucțiunile procesoarelor x86 și utilizează aceeași dimensiune a paginii de memorie, aceasta nu are nevoie de un emulator complet.

În ambele cazuri, WoW64 oferă o interfață între kernel-ul Windows pe 64 de biți și versiunea pe 32 de biți a ntdll.dll (aceasta conține o listă a funcțiilor nucleului kernel-ului Windows), interceptarea apelurilor kernel-ului și modificarea lor astfel încât să poată fi procesate de funcțiile native pe 64 de biți furnizate de kernel-ul Windows.

Există 3 fișiere DLL utilizate pe sistemele x64 / IA64 pentru a realiza acest lucru: wow64cpu.dll, wow64win.dll și wow64.dll. Funcțiile lor sunt de a abstracționa caracteristicile procesorului și de a oferi tunete (vom ajunge la ele mai târziu) în win32k.sys care oferă “fereastră” și ntoskrnl.exe care conține executivul, kernelul, managerul de memorie, programatorul de procese (care nu trebuie confundat cu Task Scheduler accesibil din Panoul de control) și alte elemente de bază ale sistemului de operare.

Un thunk este o subrutină (gândiți-vă la acestea ca o serie de instrucțiuni care execută o singură sarcină) care permite unui program să execute o subrutină sau o funcție comună în sistem.

În acest caz, extrage argumentele din stackul de apeluri al programului pe 32 de biți, le transformă în omologii lor pe 64 de biți și efectuează apelul de sistem pe 64 de biți. La întoarcerea de la apel, acesta va converti rezultatele pe 64 de biți înapoi la 32 de biți și le va împinge înapoi în sala de apel a programului pentru ca apelantul să le folosească.

Totul se face în modul de utilizare (care are permisiuni limitate) din două motive. Mai întâi, acesta minimizează efectele erorilor din cod, care ar putea duce la o gaură de securitate, la coruperea datelor sau la un accident de sistem dacă rulează în mod kernel.

În al doilea rând, reduce impactul de performanță pe care îl va avea dacă rulează în modul kernel (modul utilizat de părțile esențiale ale sistemului de operare) datorită cheltuielilor aeriene implicate la comutarea între modul de utilizare și modul kernel și înapoi.

Revenind la sistemele Itanium, există și alte diferențe importante de remarcat. Sistemele IA64 utilizează două fișiere suplimentare. IA32exec.bin este emulatorul de software x86 și Wowia32x.dll oferă interfața dintre WoW64 și emulatorul de software.

Un proces pe 32 de biți va încărca aceste fișiere, precum și versiunea pe 64 de biți a ntdll.dll. Acestea sunt singurele binare pe 64 de biți care pot fi încărcate într-un proces pe 32 de biți înainte de Windows 7. Windows 7 și ulterior au și un alt DLL, apisetschema.dll, care va fi încărcat în toate procesele.

Când se pornește un proces pe 32 de biți, se va încărca Wow64.dll care, la rândul său, încarcă versiunea pe 32 de biți a ntdll.dll și toate DLL-urile necesare pe 32 de biți de la % SystemRoot% \ SysWOW64. Majoritatea acestor fișiere sunt identice cu cele binare pe un sistem pe 32 de biți, deși unele au fost rescrise pentru a se comporta diferit în WOW64.

Privind lista DLL-urilor încărcate putem vedea că există 9 DLL-uri încărcate în proces în cadrul Win64 care nu există pentru sistemul Win32.

Acum, ar putea fi tentat să te uiți la dimensiunile fișierelor, să le adaugi și să le folosești ca bază pentru cât de mult este folosită memoria suplimentară, dar vei ajunge la rezultate inexacte. Aceste fișiere, prin natura lor, sunt concepute să fie componente partajate și, ca urmare, primul fișier care necesită un DLL îl încarcă în memorie.

Programele ulterioare care necesită același DLL nu încarcă întreaga componentă în memorie. Ei obțin un indicator pentru componenta deja încărcată și alocă RAM pentru elementele suplimentare care sunt încărcate în proces.

Setarea noastră de testare

Pentru a vedea ce se întâmplă, am creat două mașini virtuale care rulează Windows 7 Ultimate cu 2 GB RAM alocate fiecăruia. Una dintre ele este versiunea pe 32 de biți, iar cealaltă este pe 64 de biți. Ambele au trecut prin același proces de instalare și de corelare.

După ce ambele sisteme au fost patch-uri, am dezactivat fișierul de swap pe ambele pentru a obține o imagine mai bună a utilizării memoriei, garantând că memoria RAM nu poate fi stocată pe disc. Odată ce a fost complet LibreOffice 5.0.3.2 a fost instalat.

O copie a Sysinternals Process Explorer Process Explorer - cea mai puternică înlocuire a managerului de activități [Windows] Process Explorer - cea mai puternică înlocuire a managerului de activități [Windows] Să fim sinceri, Windows Task Manager nu este mare pentru înțelegerea și gestionarea proceselor care rulează pe calculatorul tau. Chiar și pe Windows 8, unde este mult îmbunătățit, managerul de activități nu se poate apropia de ... Read More a fost plasat și pe ambele mașini. Acesta este instrumentul folosit pentru a aduna informații despre utilizarea memoriei. Setarea implicită a coloanei a fost modificată, astfel încât am putut să mă uit la Setul de lucru și utilizarea privată WS.

Aceste numere de lucru reflectă cantitatea de RAM utilizată de programe. Ea a complicat un pic mai mult reflectând cantitatea de memorie folosită de bibliotecile partajate, chiar dacă acestea au fost deja încărcate de un alt proces. Din acest motiv, dacă adăugați întreaga coloană, este posibil să ajungeți la un total mai mare decât RAM-ul instalat. Setul de lucru este încă cel mai bun indicator pentru exact cât memorie este necesară pentru un proces.

Procesele pe care le examinăm nu sunt singure. Diferitele programe LibreOffice lansează un alt proces, soffice.exe, care va executa încă un alt proces, soffice.bin. Trebuie să analizăm totalurile tuturor celor trei procese pentru a vedea utilizarea eficientă a memoriei pentru fiecare program.

Pentru testul inițial, am deschis pur și simplu Writer, Calc și Impress individual pentru a vedea cât de mult memorie consumă fără să fie încărcate și exportate datele din Process Explorer. Cu Calc și Impress, am deschis un fișier de 3.7 MB .xls și respectiv un fișier .pptx de 3.9 MB și am înregistrat noua utilizare a memoriei. Rezultatele pot fi văzute în tabelul de mai jos. Toate datele sunt în KB.

Marea surpriză a avut loc cu Impress. Fără un document, se folosea cu 4,1% mai multă memorie RAM pe sistemul pe 64 de biți și cu 9,9% Mai puțin cu documentul încărcat. Am săpat alte câteva prezentări și am avut rezultate similare cu toate acestea. Sistemul pe 64 de biți a ajuns să utilizeze mai puțin RAM decât sistemul pe 32 de biți.

Deci, versiunile pe 64 de biți de Windows necesită mai multă memorie RAM decât omologii pe 32 de biți atunci când rulează aplicații pe 32 de biți? În general, da.

Dar trebuie să faceți upgrade la RAM? Probabil ca nu. Diferența într-adevăr nu este atât de masiv. Cu siguranță nu este de 1,5 ori diferită.

Explorați mai multe despre: 64-biți, memoria calculatorului, Windows.