De ce ocupa Windows 7 mai putina memorie?

Valy a scris aici despre Windows 7 și câteva lucruri subiective ce îi plac lui și m-am gândit să-i răspund legat de punctul 11 și alocarea memoriei (link-urile de mai jos sunt către documentație de pe vremea lui Vista; actualizez pe măsură ce apar documentele proaspete):

  1. Curățenie: s-au periat toate componentele sistemului pentru a reduce footprint-ul lor (curățat cache, eliminat alocările inutile de memorie). La Windows 7 efectul este câteva zeci de procente (în funcție de fier și procesorul grafic), iar la Windows Server Enterprise, idle reference set a scăzut de la 250MB pt 2003 la 160MB pt 2008 și acum la 120MB pt 2008 R2. Cine zicea că Windows Server 2003 e cel mai suplu server Windows? Să se mai gândească…
  2. DWM (Desktop Window Manager) a fost rescris: în modelul de drivere folosit în Windows 7 (WDDM 1.1) se renunță la back-buffer-ele necesare în Vista pentru crearea de ferestre compozite. Acest lucru duce la înjumătățirea necesarului de memorie pentru fiecare fereastră și un efect spectaculos, mai ales în cazul în care Windows lucrează cu rezoluții mari și/sau multe ferestre deschise.
  3. Registry: citirea/maparea registry-ului nu se mai face în memorie ci în paged pool (pe vremuri, paged pool era prea ”prețios” pentru a-l canibaliza cu registry-ul; acum ne permitem).
  4. Working Sets: Memory Managerul (cel care arbitrează alocarea de memorie pe procese: pe scurt, dacă un proces generează page faults și lovește discul, atunci se alocă mai multă memorie fizică acelui proces) lucrează diferit cu working seturile:
    • system working set în Vista conținea System Cache, Paged Pool și System Code, și avea o problemă când cache managerul se umfla în pene (de ex la copiere avea ”darul” să umfle System Cache), fiindcă începea să abuzeze de Paged Pool și de System Code (aici sunt driverele) și cauza împingerea acestora pe disk (page faults). Rezultatul e un Vista care se chinuie din ce în ce mai mult pe măsură ce copiază fișiere. În Windows 7 fiecare dintre aceste trei procese sistem au un working set propriu și dacă unul din ele se umflă, o face pe propria piele.
    • dacă un/oricare proces se umflă peste un prag, memory managerul nu îi mai alocă memorie suplimentară ci îl lasă să ”sufere” singur, pentru a nu afecta celelalte procese din working set.
  5. Serviciile se pot porni/opri (SCM – Service Control Manager) pe bază de trigger-e și nu trebuie să pornească la boot și să stea ”aprinse” până la shutdown. Trigger-ele sunt gestionate de UBPM (Unified Background Process Manager) și pot fi corelate cu apariția/dispariția unui dispozitiv, unei adrese de IP, unui eveniment al firewall-ului, unui domeniu sau a unui eveniment personalizat. De aia când te uiți cu task managerul în Windows 7 vei vedea un set mult mai restrâns de procese… din care o treime sunt ale Internet Explorer Smile deh, așa e cu browsingul multiproces Smile

Sper să vă ajute.

Detalii pe:

Filed under: Windows, Windows Server

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 9:59 AM by Valy Greavu

Multumesc de suportul mai oficializat Wink

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 10:53 AM by AndreiU

DWM a facut progrese mari in Windows 7 si optimizarile din el se vad cu ochiul liber (o interfata mai spectaculoasa care merge pe acelasi hardware ca Vista).

Punctul 4: va mai amintiti cand va spuneam ca tin Superfetch-ul oprit??

Legat de Windows 7 si de perceptia lui in piata as putea spune urmatoarele: multi oameni de IT o sa-si schimbe cu greu parerea lasata de Vista. Ca pana la urma si pe Vista l-ati laudat (chiar aici pe ITboard erau guri care strigau ca Vista e cel mai tare si ca nu are nici o problema) si spuneati ca e un campion la viteza pe 100m, cand de fapt el, saracul, se chinuia intr-un scaun cu rotile. Trebuie totusi sa recunosc ca Windows 7 nu mai e doar o reclama frumoasa, ci e un adevarat atlet si chiar livreaza promisiunile Microsoftului.

Zoli, acum am si eu un soi de dilema. Dupa mine, Punctul 1 ar fi putut fi livrat si in Vista printr-un service pack (poate ca si celelalte, nu stiu). Ce fac cei care au investit deja in Vista (luati pe sus de sloganurile de marketing si de promotorii lui)? Pe vremurile astea nu cred ca or sa faca o noua investitie si sa treaca la Windows 7. Ce fac, raman blocati pe Vista? Exista o varianta „avantajoasa” de upgrade si pentru ei, sau o promisiune ca si Vista se va ridica din acel scaun cu rotile si va incepe sa mearga?

Inteleg ca era dificil sa aduci atatea schimbari in cod pe un OS deja vandut si existau multe riscuri, dar W7 e deja out, testat de foarte multi useri, codul s-a dovedit „reliable”, so .. porteaza-l si pe Vista. Nu ne trebuie feature-urile din 7, ci macar acel punct 1. Da stiu .. sunt avioanele mele de Luni dimineata, dar sa stii ca foarte multi oameni din IT gandesc la fel ca mine.

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 11:42 AM by zoltanhe

@Andrei, nu vreau să minimizez inovațiile aduse in kernelul lui Vista. Nici pe departe! Multe sunt unice chiar și acum în lumea sistemelor de operare pentru muritori (dacă mai aveți dileme urmăriți-l pe Mark în Windows Vista Kernel Changes pe TechNet: http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=340&PUID=00067FFE86205DB5).

Revenind, întrebarea firească e: se putea face mai bine? Sigur că da. Era nevoie de o versiune nouă? Pentru majoritatea finisărilor legate de kernel, da. Este drept că, așa cum spuneai, punctul 1 se poate porta pe Vista într-un service pack… poate la următorul…

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 11:50 AM by AndreiU

Thanks! Asta vroiam sa aud. Nici macar o promisiune? 🙂

PS:Nu am zis ca nu a adus inovatii. Stii ca am discutat asta de mult timp. Performanta era problema.

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 12:26 PM by zoltanhe

Ei, da, performanța necesită un post separat…

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 1:10 PM by zoltanhe

Na, că nu mai trebuie… S-a scris despre PerfTrack aici: http://blogs.msdn.com/e7/archive/2008/12/15/continuing-our-discussion-on-performance.aspx.

Cu PerfTrack s-a făcut sistemul să percuteze mai rapid la acțiunile userului.

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 4:12 PM by Valentin

Location-Aware Printing

Windows 7 vă oferă posibilitatea de a comuta automat pe imprimanta implicită când detectează că v-ați mutat de la o rețea la alta, de exemplu, de acasă, la locul de muncă. Aceasta înseamnă că puteți avea o imprimantă implicită la locul de muncă și  imprimantă implicită la domiciliu. Când sunteți conectați la rețeaua de acasă, documentele vor fi printate automat pe imprimanta de acolo iar atunci când sunteți la locul de muncă ele se vor printa pe imprimanta de la birou.

Această caracteristică se numește location-aware printing și este disponibilă doar în versiunile premium ale Windows 7. De asemenea este disponibilă doar pe calculatoarele portabile sau pe cele care folosesc baterie.

Pentru a  seta o imprimantă  ca imprimantă implicită:

1. Click Start și selectați opțiunea Devices and Printers

2. Click dreapta pe imprimantă și apoi click pe Set as default printer.

Pentru a gestiona setările location-aware printing:

1. Click Start și selectați opțiunea Devices and Printers

2. Click pe imprimantă si apoi click pe Manage default printers on the toolbar

3. Click Change my default printer when I change networks

4. În Select network , click pe o rețea

5. În Select printer list, click pe imprimanta implicit corespunzătoare

6. Click Add

7. Repetați pașiis 4, 5 și 6 după cum este necesar. Când ați terminat apăsați OK.

Notă

• Dacă nu doriți ca Windows să vă schimbe setările imprimantei atunci când treceți de la un loc la altul, faceți click pe Always use the same printer as my default printer în fereastra Manage Default Printers apoi apăsați OK.

• Dacă doriși ca o rețea fără fir să apară în Manage Default Printers aveți nevoie să vă veți fi conectat cu success cel puțin o dată la acea rețea.

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 5:27 PM by cilu

Zoli: Cine zicea că Windows Server 2003 e cel mai suplu server Windows? Să se mai gândească…

Cred ca voi ziceati, cand l-ati lansat. 🙂 🙂

Astept sa vad in vreo 2-3 ani ce se va zice de urmatoarea versiune de Windows. Intre timp pot sa spun ca RC-ul se misca mai ok decat Vista pe laptop-ul meu.

# re: De ce ocupa Windows 7 mai putina memorie?

Monday, August 10, 2009 9:57 PM by AndreiU

Stai sa vedem cat de suplu o sa mai fie dupa cateva service packuri 🙂

# re: De ce ocupa Windows 7 mai putina memorie?

Tuesday, August 11, 2009 10:51 AM by zoltanhe

legat de suplețe… va fi interesant de văzut un server core bazat pe MinWin și să fie de câteva sute de MB …vs 1,2GB acum. Atunci poate o să-ți placă și ție server core, @Andrei 🙂

# re: De ce ocupa Windows 7 mai putina memorie?

Tuesday, August 11, 2009 11:28 AM by blackhat

Cand o sa ruleze pe un telefon mobil poate o sa fiu si eu impresionat 🙂 Pana atunci trebuie sa fiu de acord cu Andrei.

# re: De ce ocupa Windows 7 mai putina memorie?

Tuesday, August 11, 2009 12:26 PM by zoltanhe

@blackhat, teoretic MinWin ar putea merge și pe un telefon mobil… cel puțin footprint-ul îi permite: cca 30MB pe disk, cca 40MB în memorie și vreo 160 de fișiere. În Windows 7 în folderul System32 e un ”kernelbase.dll”. Ei, da. Este a lui Minwin.

Acum rămâne să-l pui să și facă ceva 🙂