Przecież pamięć wirtualna to także RAM. W trybie użytkownika nie masz bezpośredniego dostępu do fizycznej pamięci RAM, wszystko jest mapowane do wirtualnej przestrzeni adresowej procesu. Dzięki temu wymiana RAM <-> dysk jest dla procesu niewidoczna.
Jestem tego świadom, wyraziłem się nieprecyzyjnie, gdyż nie wiem jak to inaczej ując w słowa. U siebie plik wymiany mam wogóle wyłączony, więc wszystkie operacje odbywają się w pamięci RAM nic nie jest przepisywane do pliku wymiany, gdyż go zwyczajnie nie ma, aczkolwiek istnieje pamięć wirtualna w pamięci RAM.
Chodziło mi o coś takiego. Jeżeli uruchomisz
Menadżera zadań, na zakładce
Procesy widzisz kolumnę
Użycie pamięci, możesz dodać do
Menadżera zadań kolumnę
Rozmiar pamięci wirtualnej, wtedy dla każdego procesu masz pokazane
Użycie pamięci i
Rozmiar pamięci wirtualnej. Można też zaobserwować, że zmniejszenie
Użycia pamięci dla wybranego procesu, tak naprawdę nie zwalnia zasobów procesu lecz przepisuje te zasoby do pamięci wirtualnej, czyli w kolumnie
Użycie pamięci ilość użytej pamięci się zmniejsza, ale rośnie
Rozmiar pamięci wirtualnej, nie zawsze proporcjonalnie. I o to mi właśnie chodziło, czyli że minimalizacja programu zmniejsza
Użycie pamięci zwiększając jednocześnie
Rozmiar pamięci wirtualnej procesu.
Odnośnie pytania
team.4g. Nie możesz zjeść ciasteczka i mieć ciasteczko. Jeżeli uruchamiasz program, to jest on ładowany do pamięci i nie możesz go z tej pamięci wyrzucić inaczej jak poprzez zakończenie programu. System Windows zarządzając pamięcią przepisuje cześć pamięci programu do pamięci wirtualnej, więc to co Ty nazywasz zwalaniem zasobów podczas minimalizacji programu, tak naprawdę niczego nie zwalnia, tylko system po minimalizacji programu uznaje ten program za "mniej ważny" i przepisuje wszystkie zbędne w danej chwili jego zasoby do pamięć wirtualnej, by zaoszczędzić pamięć. Po przywróceniu programu system przepisuje z powrotem program do pamięci, ale nie w całości, tylko tyle ile akurat teraz potrzebuje. Jednak cały czas wszystkie zasoby używane przez program znajdują się w pamięci, tyle że część w pamięci wirtualnej. Dodaj sobie w Menadżerze zadań kolumny
Szczytowe użycie pamięci i
Rozmiar pamięci wirtualnej, a zobaczysz to. Takie częste manipulowanie pamięci programu tylko zmniejsza jego wydajność.
Pisze to własnymi słowami, tak jak to rozumiem, gdyż zagadnienie zarządzania pamięcią przez system Windows XP nie jest mi dobrze znane, więc piszę to bardzo ogólnie. Chodzi mi o to, że program nie zawsze zwalnia zasoby tylko system przepisuje część pamięci programu do pamięci wirtualnej, co może stwarzać wrażenie, że zostały zwolnione jakieś zasoby.
Co się tyczy przywołania okna na pierwszy plan to tutaj masz funkcję:
dział:
porady API Przywołanie okna programu na pierwszy plan.