Informacje o wielkosci pamieci wirtualnej w systemie??

0

Witam, mam problem z podjeciem informacji na temat wielkosci pamieci wirtulaniej w systemie z Freameworkiem 2.0.

Ogolne pamiec wiertualna w systemie Windows Xp to troche abstrakja z mojich obserwacji (na podstawie danych z programu Aida32) wynika ze jest to suma pamieci zainstalowanej w PC (RAM) oraz wielkosci pliku swap(pagefile). Jezeli chodzi o ta pierwsza pamiec to NIE MA problemu w zdobyciu o niej informacji problem jest z wirtulna czy tez swap-em

Zatem wlasciwe moje pytanie jest jak podjac informajce o aktulanym wykorzystaniu pamieci swap oraz jej maksymalnego rozmiaru.

podam tylko ze nie chodzi mnie tutaj o funkcje TotalVirtualMemory (z klasy Computerinfo ) gdyz ona zwraca zupelnie co innego.

0

Odp

using ....
...
using System.Runtime.InteropServices;

namespace Memorystat
{
	[StructLayout(LayoutKind.Sequential)]   
	public struct MEMORYSTATUS
	{
	        public  uint dwLength;
			public  uint dwMemoryLoad;
			public  uint dwTotalPhys;
			public  uint dwAvailPhys;
			public  uint dwTotalPageFile;
			public  uint dwAvailPageFile;
			public  uint dwTotalVirtual;
			public  uint dwAvailVirtual;
	 }
   public class Memory
      {
		//Pobieramy statut pamieci
		[DllImport("kernel32")]
		static extern void GlobalMemoryStatus(ref MEMORYSTATUS buf);

                protected void ram_info()
               {

                MEMORYSTATUS memSt = new MEMORYSTATUS();
                GlobalMemoryStatus(ref memSt);

                Console.WriteLine("Available Page File :		" + (memSt.dwAvailPageFile / 1024).ToString() + "\n " +
                "Available Physical Memory :		" + (memSt.dwAvailPhys / 1024).ToString() + "\n " +
                "Available Virtual Memory :		" + (memSt.dwAvailVirtual / 1024).ToString() + "\n " +
                "Size of structur :			" + memSt.dwLength.ToString() + "\n " +
                "Memory In Use :			" + memSt.dwMemoryLoad.ToString() + "\n " +
                "Total Page Size :			" + (memSt.dwTotalPageFile / 1024).ToString() + "\n " +
                "Total Physical Memory :		" + (memSt.dwTotalPhys / 1024).ToString() + "\n " +
                "Total Virtual Memory :		" + (memSt.dwTotalVirtual / 1024).ToString());
                 


                }

.......... i tam gdzies wywolanie
        }
}

enjoy ;]

0

proponuje rowniez zajrzec do przestrzeni nazw:

System.Diagnostics

a szczegolnie na wlasciwosci klasy process:

VirtualMemorySize
VirtualMemorySize64

Link:
http://msdn2.microsoft.com/en-us/library/system.diagnostics.process.virtualmemorysize64.aspx

0

@kts

Rozwiazanei jest dobre jezeli to chodzio o to ile sam proces (np. nasz program) zajmuje a nie ogolem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1