Zbyt dużo pamięci się przyzwyczaja


13

Przez pewien czas czułem się w ten sposób, patrząc mentalnie na menedżera zadań, jak dużo pamięci fizycznej powinno być w użyciu, i zauważyłem dużą rozbieżność. W końcu przystąpiłem do pomiaru. Biorąc wyniki listy zadań i dodając, otrzymałem około 3,87 GB. Menedżer zadań powiedział mi, że używam 4,6 GB pamięci. Wydaje się to dużą rozbieżnością. Gdzie to poszło?

EDYCJA: Więc jest jasne, że nie będzie pobierania z wyprzedzeniem. Sugerowano również, że jest to część systemu operacyjnego, ale nie część żadnego z procesów systemowych. Jeśli to prawda, znajdź sposób, aby system operacyjny powiedział mi, ile pamięci się zużywa. Ponieważ chcę dowiedzieć się, gdzie poszło wspomnienie, proszenie mnie o sprawdzenie różnicy nic dla mnie nie robi.

EDYCJA 2: Nie jest to:

  1. Jądro
  2. Pamięć podręczna
  3. Pamięć zarezerwowana sprzętowo

Zdjęcie podjętych zasobów. Nie jestem pewien, co zrobi, ale ... wprowadź opis zdjęcia tutaj


Z jakiego systemu operacyjnego korzystasz? Uzyskasz lepsze odpowiedzi z większą ilością informacji :)
Cam Jackson

Przepraszam zobacz nowy tag :)
soandos

@soandos: Czy próbowałeś wyłączyć superpobieranie i ponowne uruchamianie? Czy to robi różnicę?
user541686

Tak, zrobiłem i nie, ale nie byłoby miło wiedzieć, ile zajmie pobranie wstępne pamięci.
soandos

2
Pobieranie wstępne NIE wykorzystuje pamięci, buforuje najczęściej używany kod bajtowy ze skompilowanych aplikacji. Nie wyłączaj go, bo wydajność twojego systemu drastycznie spadnie.
Przełom

Odpowiedzi:


5

Sugeruję pobranie pakietu Sysinternals od Microsoft . Zawiera kilka narzędzi, które dostarczą więcej informacji niż Menedżer zadań. Spójrz na narzędzia Process Explorer, RAMMap, VMMap i Process Monitor. Aby uzyskać od nich jak najwięcej informacji, konieczne może być wykonanie konfiguracji w celu zmiany wyświetlanych informacji.

Ponadto, ponieważ interesujesz się pamięcią systemu Windows, oto seria postów na blogu od Marka Russinowicza , jednego z twórców / założycieli Sysinternals. Pomoże to zrozumieć informacje dostarczane przez narzędzia.


Wygląda na to, że RAMMap mówi mi, że menedżer zadań przecenia całkowite użycie pamięci RAM o około 100 MB, ale zgodnie z listą pamięci, którą mogę pobrać za pomocą tasklisty, RAMMap również zawyża o około 200 MB (tasklist +200 = RAMMap, RAMMap + 100 = taskmanger)
soandos

1
Nie jestem pewien tego, co widzisz, i nie jestem w bankomacie z systemem Windows, aby to sprawdzić. Jeśli jednak nadal chcesz kopać głębiej, zapytaj na forach Sysinternals. Jest tam kilku bardzo inteligentnych ludzi, którzy bardzo „lubią” wewnętrzne elementy systemu Windows. Będą bardziej zaznajomieni z dokładniejszymi aspektami zarządzania pamięcią systemu Windows.
Joe Internet

Na przyszłość, oto TechEd 2011 Marka Russinovicha na temat zarządzania pamięcią Windows: channel9.msdn.com/Events/TechEd/NorthAmerica/...
Joe Internet

Ta „odpowiedź”, mimo że zaakceptowana, nie odpowiada na pytanie! Sugeruje jedynie narzędzia i czytanie do zbadania.
Jamie Hanrahan

8

Windows 7 używa „nieużywanej” pamięci do wstępnego buforowania, aby przyspieszyć działanie. Jeśli potrzebujesz tej pamięci, zostanie uwolniona.

To funkcja, a nie błąd;)

Z technetu

Po pewnym czasie korzystania z systemu Windows Vista na stronie Wydajność Menedżera zadań zobaczysz małą liczbę licznika Wolnej pamięci fizycznej. Dzieje się tak, ponieważ SuperFetch i standardowe buforowanie systemu Windows wykorzystują całą dostępną pamięć fizyczną do buforowania danych na dysku. Na przykład po pierwszym uruchomieniu, jeśli natychmiast uruchomisz Menedżera zadań, powinieneś zauważyć, że wartość Wolnej pamięci spada wraz ze wzrostem liczby pamięci podręcznej. Lub jeśli uruchomisz program wymagający dużej ilości pamięci, a następnie go zamkniesz (dowolny darmowy „optymalizator pamięci RAM”, który przydzieli dużą ilość pamięci, a następnie zwolni pamięć, będzie działał), lub po prostu skopiuje bardzo duży plik, numer bezpłatny będzie wzrasta, a wykres wykorzystania pamięci fizycznej spadnie, gdy system odzyskuje zwolnioną pamięć. Z czasem jednak funkcja SuperFetch ponownie wypełnia pamięć podręczną danymi, które zostały wyparte z pamięci,


1
1) dlaczego więc nie ma tego w pamięci dla tego procesu? 2) skąd mam wiedzieć, że tak jest w tym przypadku?
soandos

uważam, że superpobierz jest pod svchost. MOGĄ być liczone jako pamięć jądra. Możesz spróbować włączyć lub wyłączyć superpobierz, aby to sprawdzić.
Journeyman Geek

Nic nie zrobił.
soandos

Pamięć używana przez Superfetch znajduje się na liście stron w trybie gotowości i jest liczona jako część „Dostępne”. Nie jest liczony jako „w użyciu”, ponieważ można go zmienić (wyciągnąć z listy Standby i wprowadzić do procesu), podobnie jak wszystko inne na liście Standby, a także wszystko na liście Free i Zero.
Jamie Hanrahan,

5

Liczby, które widzisz, są całkowicie nieprecyzyjne i powinny być traktowane jedynie jako wskazówki.

System operacyjny jest niezwykle złożoną jednostką, a prosty program, taki jak Menedżer zadań, nigdy nie może zsumować całego użycia, wiele jego części jest po prostu niedostępnych w trybie użytkownika, w którym działa. Niektóre elementy, które są dla niego niedostępne lub których po prostu nie można przypisać do żadnego „zadania”, to tabele segmentacji sprzętu, przydziały pamięci współużytkowanej, pamięć przydzielona do jądra, przydziały pamięci strony, pamięć urządzenia i wiele innych.

Więcej wyjaśnień znajdziesz w Jak interpretować kartę Wydajność w Menedżerze zadań? , ale postanowiłem zacytować tę część:

Czego oczekujesz od programu nazywającego się „Menedżerem zadań”? W jądrze systemu operacyjnego nie ma nic zwanego „zadaniem” - system operacyjny ma „procesy” i „wątki”. DOS miał „zadania”. Sprzęt Intel ma struktury „zadań”, ale system operacyjny ich nie używa, ponieważ jest to szybsze, aby mógł to zrobić sam.

Menedżer zadań to bardzo stary program systemu Windows, ma problemy nawet z przypisywaniem funkcji do usług, a liczby, które pokazuje, należy przyjmować z dużą dozą soli. Prawdopodobnie brakuje dużych obszarów pamięci, których nie jest w stanie policzyć ani przypisać żadnemu „zadaniu”.


Więc jakiego programu powinienem użyć, żeby to rozgryźć? Menedżer zadań PS ma na liście pamięć jądra.
soandos

1
Nie ma jednego programu, który dałby WSZYSTKIE informacje. Menedżer zadań poda pewne informacje i przybliżenie, Menedżer urządzeń może powiedzieć o pamięci urządzenia, a WinObj o obiektach pamięci. Najlepszym źródłem jest Monitor zasobów, wywoływany z zakładki Wydajność w Menedżerze zadań (i gdzie indziej), który w rzeczywistości jest nowoczesnym zamiennikiem Menedżera zadań.
harrymc

Menedżer zasobów podaje liczbę w obrębie 15 menedżera zadań.
soandos

Wyglądają jak jedyne liczby, które można uzyskać z interfejsu systemu Windows. Nie są precyzyjne, ale są znacznie lepsze niż nic. Mogą być używane do rozwiązywania problemów (co często robię), ale nie oczekuj, że zawierają wszystko.
harrymc

Pogląd, że Menedżer zadań jest „bardzo starym programem Windows”, jest głupi. Jest aktualizowany z każdą wersją systemu operacyjnego, tak jak prawie wszystko inne. Jeśli chodzi o „jedyne liczby, jakie można uzyskać”, czy nie korzystałeś z Monitora wydajności?
Jamie Hanrahan,

3

Jak zapewne zauważyłeś, Menedżer zadań może dać ci uproszczoną migawkę przedstawiającą wpływ większości aplikacji na twój system, ale pozostawia wiele do życzenia. Jeśli naprawdę chcesz zagłębić się w pamięci podręczne w pamięci RAM itp., Musisz wejść do Monitora wydajności. Zbudowanie zestawu liczników systemowych do monitorowania systemu zajmie trochę pracy.

Możesz się tam dostać, uruchamiając compmgmt.msc lub szukając w systemie Windows hasła „zarządzanie komputerem”, a po lewej stronie zobaczysz drzewo wydajności, które możesz rozwinąć i wkopać.

Oto odniesienie do niektórych dostępnych narzędzi: http://technet.microsoft.com/en-us/library/cc749249.aspx


Chociaż widzę, że jest to bardzo fajne narzędzie, które może robić wiele rzeczy (o czym świadczy fakt, że w pamięci jest mnóstwo liczników, nie mam pojęcia, czego szukam. Jakieś pomysły?
soandos

Ponadto opcja dodawania licznika zwykle przykleja się do mojego ekranu i muszę ręcznie zmienić rozdzielczość tam i z powrotem, aby ją naprawić (odświeżanie nie działa). Nie twoja wina, wiem.
soandos

3

Pamięć jest prawdopodobnie używana dla jądra. Za pomocą Process Explorer możemy zobaczyć znacznie bardziej szczegółowy podział pamięci systemowej:

Informacje o pamięci jądra

Podkreśliłem tutaj ilość pamięci używanej przez jądro, którą jest Paged WS + Nonpaged lub około 300 MB pamięci. Jest to na świeżo uruchomionym systemie z przeglądarką internetową i kilkoma innymi aplikacjami otwartymi, chociaż pod dużym obciążeniem mój system domowy łatwo psuje 500 MB, a nawet 700 MB pamięci jądra.


Patrzyłem na to, a to nie wystarcza. Ale dziękuję.
soandos

Czy pytasz o różnicę między liczbami Commit a pamięcią fizyczną?
Darth Android

Nie, pytam dlaczego, kiedy uruchamiam różne narzędzia, które mają uzyskać te same liczby, otrzymuję różne liczby.
soandos

2

@soandos, czy wziąłeś pod uwagę, ile pamięci zajmuje wideo? Bardzo możliwe, że wideo pobiera 0,73 GB pamięci RAM. Czy masz przyzwoitą kartę graficzną na tym komputerze? Jeśli nie, użyje pamięci RAM w ten sposób (jak wiem). Jeśli się mylę, ktoś proszę dzwonić tutaj, ale uważam, że może to być efekt ściągania wideo z pamięci RAM.


Mam Nvidia GTS 360M. To nie jest świetna karta graficzna, ale ma GB pamięci.
soandos

Jakiego rodzaju monitora używasz, z jaką rozdzielczością korzystasz? Czy wykonujesz także zadania wymagające intensywnego odtwarzania wideo, takie jak gry w rozdzielczości 1080p? A jakiego rodzaju pamięci RAM używasz karty graficznej (np. DDR1, DDR2, DDR3, DDR5)? Sam bym to sprawdził, ale spróbowałem tego z czyimś modelem karty graficznej i zauważyłem, że zrobili to z kilkoma różnymi rodzajami pamięci RAM ...
David

Standardowo z komputerem, 1920x1080, bez pomysłu. Czy istnieje sposób, aby to zmierzyć?
soandos

Zwykle powie to na opakowaniu, nie jestem pewien. Jeśli znasz ten dokładny model karty, możesz dowiedzieć się w Internecie. Jeśli nie jest to bardzo wydajna karta graficzna (korzystająca z DDR2, DDR1) i używasz 1920x1080 z dużym monitorem (na przykład używam telewizora 46 "TOC Samsung jako mojego monitora w domu), możesz spalić dużo pamięci tylko na wideo ... Nie jestem pewien, czy istnieje sposób, aby zobaczyć, ile pamięci RAM zużywa Twój film. Jednak teraz przeprowadzę badania nad tym. Skomentuję, czy coś znajdę, czy nie Chcę ci pomóc w jak największym stopniu
David

Obecnie sprawdzam ten program, aby zobaczyć, czy może on mieć to, czego szukamy. Jest to SiSoftware Sandra Lite 2011.2.17.47. Opis mówi, że robi to, czego szukamy, na przykład ile pamięci RAM zajmuje wideo.
David

1

Różnica, którą myślę, że widzisz, nie polega na tym, że narzędzia nie są w stanie zobaczyć zużytej pamięci, a raczej z powodu różnych form pomiaru. Nie potrafię tego dobrze wytłumaczyć, ale na szczęście nie muszę, Mark Russinovich ze sławy Sysinternals napisał bardzo dobrą serię postów dotyczących wydajności procesu w systemie Windows. Części dotyczące pamięci fizycznej i pamięci wirtualnej powinny wyjaśniać to, co widzisz.


Nie, to nie jest problem. Bardziej interesuje mnie łączna kwota niż miejsce przechowywania (RAM lub HD).
soandos

0

Myślę, że to rozwiązałem!

Właśnie natrafiłem na wskazówkę dotyczącą RAMMapy i okazało się, że to µTorrent!

Nie utorrent.exesam, ale pliki współdzielone przez µTorrent - przynajmniej w moim przypadku: jeden z nich zużywał ponad 600 MB, a drugi ponad 200 MB itp.


-1

Część pamięci jest używana jako pamięć podręczna. Gdy tylko potrzebujesz tej pamięci, zostaje ona automatycznie zwolniona. Więc nie musisz się martwić.


-1 To nie jest pamięć podręczna, ponieważ jest 1) liczona oddzielnie, 2) łatwa do rozliczenia.
soandos
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.