Publicitate
Majoritatea computerelor sunt livrate astăzi cu o versiune Windows pe 64 de biți și adesea o cantitate minimă de memorie RAM. Acest lucru pune în discuție cât de bine funcționează aceste sisteme. Acest lucru este valabil mai ales atunci când utilizatorii doresc să își execute software-ul vechi pe 32 de biți pe aceste computere noi.
Ceea ce ridică o întrebare interesantă. Tu au nevoie de mai mult sau mai puțin RAM Câtă RAM ai nevoie cu adevărat?RAM este ca memoria pe termen scurt. Cu cât aveți multitask, cu atât aveți nevoie. Aflați cât de mult are computerul dvs., cum să obțineți la maximum sau cum să obțineți mai multe. Citeste mai mult pentru a rula o aplicație pe 32 de biți pe un Versiunea pe 64 de biți a Windows Ce este calcularea pe 64 de biți?Ambalajul unui computer sau hardware al calculatorului este plin de termeni și insigne tehnice. Unul dintre cele mai proeminente este pe 64 de biți. Citeste mai mult ? Săptămâna aceasta, Bruce Epper află.
Un cititor întreabă:
Este adevărat că rularea aplicațiilor pe 32 de biți pe un sistem Windows 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 sub un sistem de operare Windows pe 32 de biți?
Răspunsul lui Bruce:
Am discutat anterior despre beneficiile și dezavantajele menținerii a tot ce este pe 64 de biți de-a lungul întregului tablou și al unora dintre efectele „amestecării și potrivirii” Cum este afectată performanța Windows de hardware și softwareÎn teorie, software-ul pe 32 de biți și-ar putea depăși contrapartida pe 64 de biți, în funcție de configurarea hardware. Pare complicat? Suntem aici pentru a avea sens și pentru a vă ajuta să obțineți cele mai bune performanțe din sistemul dvs. Citeste mai mult . Astăzi vom examina modul în care se execută aplicațiile pe 32 de biți pe versiunile Windows pe 64 de biți.
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. Sunt prea diferite: de la indicatoare și tipuri de date, la modul în care apelurile sistemului (modul în care programele folosesc resursele sistemului de operare de bază). Aveți nevoie de un fel de a le face compatibile.
Înțelegerea WoW64
Windows utilizează subsistemul WoW64 (Windows32 pe Windows64) pentru a compensa diferențele. Funcționează eficient ca un mini-emulator Windows pe 32 de biți pe sistemele x64 și un emulator complet pe sistemele Itanium (IA64).
Sistemele IA64 necesită un emulator complet datorită diferențelor în instrucțiunile procesorului și dimensiunile paginii 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, 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ă de bază Funcții kernel Windows), interceptarea apelurilor kernel-ului și modificarea acestora, astfel încât acestea să poată fi procesate de funcțiile native pe 64 de biți furnizate de Windows nucleu.
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 abstractiza caracteristicile procesorului și de a oferi bucăți (vom ajunge mai târziu la ei) în win32k.sys care oferă funcționalitatea „fereastră” și ntoskrnl.exe care conține executiv, kernel, manager de memorie, planificator de procese (nu trebuie confundat cu Scheduler-ul Task accesibil de la Panoul de control) și alte elemente de bază ale operației sistem.
Un thunk este o subrutină (gândiți-vă la acestea ca la o serie de instrucțiuni care îndeplinesc o singură sarcină) care permite unui program să execute o subrutină comună sau o funcție în sistem.
În acest caz, extrage argumentele din stiva de apeluri a programului pe 32 de biți, le transformă în omologii lor pe 64 de biți și face apelul la sistem pe 64 de biți. La întoarcerea de la apel, acesta va converti rezultatele pe 64 de biți în 32 de biți și le va împinge înapoi pe stiva de apeluri a programului pentru apelarea acestora.
Toate redresările se fac în modul utilizator (care are permisiuni limitate) din două motive. În primul rând, reduce la minimum efectele erorilor din cod care ar putea duce la o gaură de securitate, corupție a datelor sau blocare a sistemului dacă se execută în modul kernel.
În al doilea rând, reduce impactul asupra performanței pe care l-ar avea în cazul rulării în modul kernel (modul utilizat de părțile esențiale ale sistemului de operare), datorită aerului implicat la trecerea între modul utilizator și modul kernel si inapoi.
Revenind la sistemele Itanium, există alte diferențe importante de remarcat. Sistemele IA64 folosesc două fișiere suplimentare. IA32exec.bin este emulatorul software x86 și Wowia32x.dll oferă interfața dintre WoW64 și emulatorul 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 versiunile ulterioare au și un alt DLL, apisetschema.dll, care va fi încărcat în toate procesele.
Când un proces pe 32 de biți este pornit, acesta va încărca Wow64.dll care, la rândul său, încarcă versiunea pe 32 de biți a ntdll.dll și orice DLL-uri 32-bit necesare din % SystemRoot% \ SysWOW64. Cele mai multe dintre aceste fișiere sunt identice cu cele binare de pe un sistem pe 32 de biți, deși unele au fost rescrise pentru a se comporta diferit sub WOW64.
Analizând lista DLL-urilor încărcate putem vedea că există 9 DLL-uri încărcate în procesul de sub Win64 care nu sunt acolo pentru sistemul Win32.
Acum, s-ar putea să fiți tentat să priviți dimensiunile fișierelor, să le adăugați și să le utilizați ca bază pentru cantitatea de memorie suplimentară folosită, dar veți ajunge la rezultate inexacte. Aceste fișiere, prin natura lor, sunt concepute pentru a fi 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. Aceștia obțin un indicator către componenta deja încărcată și alocă RAM pentru elementele suplimentare care sunt încărcate în proces.
Configurarea noastră de testare
Pentru a vedea ce se întâmplă, am configurat 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ă pe 64 de biți. Ambele au trecut prin același proces de instalare și patching.
După ce ambele sisteme au fost patchate, am dezactivat fișierul swap pe ambele pentru a obține o imagine mai bună a utilizării memoriei, asigurându-mă că RAM nu poate fi paginat pe disc. Odată finalizată, s-a instalat LibreOffice 5.0.3.2.
O copie a Sysinternals Process Explorer Process Explorer - Cel mai puternic Task Manager de înlocuire [Windows]Să fim sinceri, Managerul de activități Windows nu este atât de bun pentru înțelegerea și gestionarea proceselor care rulează pe computer. Chiar și pe Windows 8, unde este mult îmbunătățit, managerul de sarcini nu se poate apropia de ... Citeste mai mult a fost plasat și pe ambele mașini. Acesta este instrumentul pe care l-am folosit pentru a aduna informații despre utilizarea memoriei. Setarea implicită a coloanei a fost modificată, astfel încât am putut privi setul de lucru și utilizarea WS Private.
Aceste numere de set de lucru reflectă cantitatea de RAM folosită de programe. S-a complicat un pic mai departe, reflectând cantitatea de memorie folosită de bibliotecile partajate, chiar dacă acestea au fost deja încărcate de un alt proces. Din această cauză, dacă adăugați întreaga coloană, este posibil să se încheie cu un total mai mare decât memoria RAM instalată. Setul de lucru este în continuare cel mai bun contor de exact cantitatea de memorie necesară pentru un proces.
Nici procesele pe care le examinăm nu stau singure. Diferitele programe LibreOffice lansează un alt proces, soffice.exe, care va executa încă un proces, soffice.bin. Trebuie să analizăm totalul celor trei procese pentru a vedea utilizarea eficientă a memoriei fiecărui program.
Pentru testul inițial, am deschis pur și simplu Writer, Calc și Impress individual pentru a analiza cantitatea de memorie pe care o consumă fără a fi încărcate date și exportat datele din Process Explorer. Cu Calc și Impress, am deschis un fișier .xls de 3,7 MB și respectiv 3,9 MB .pptx și am înregistrat noua utilizare a memoriei. Rezultatele pot fi văzute în tabelul de mai jos. Toate datele sunt în KB.
Marea surpriză s-a produs cu Impress. Fără document, folosea 4,1% mai mult RAM pe sistemul pe 64 de biți și 9,9% Mai puțin cu documentul încărcat. Am săpat câteva alte prezentări și am avut rezultate similare cu toate. Sistemul pe 64 de biți a sfârșit folosind mai puțin RAM decât sistemul pe 32 de biți.
Deci, versiunile Windows pe 64 de biți necesită mai multă memorie RAM decât omologii lor pe 32 de biți atunci când rulează aplicații pe 32 de biți? În general, da.
Dar trebuie să-ți actualizezi memoria RAM? Probabil ca nu. Diferența într-adevăr nu este atât de masiv. Cu siguranță nu este de 1,5 ori diferit.
Bruce se joacă cu electronica încă din anii '70, calculatoarele de la începutul anilor '80 și răspunzând cu exactitate la întrebări despre tehnologie pe care nu le-a folosit și nici nu le-a văzut întreaga perioadă. De asemenea, se enervează prin încercarea de a cânta la chitară.