Speicherverbrauch des eigenen Programms ermitteln



  • Hi!

    Gibt es eine Möglichkeit den Speicherverbrauch meines Programms zu ermitteln?
    Ich habe schon öfter gelesen, dass der Taskmanager dafür ungeeignet ist und bei mir zeigt er auch nicht das an, was ich erwartet habe. Zum Beispiel erstelle ich mir eine CBitmap mit CreateCompatibleBitmap, die Dimensionen der Bitmap skalieren mit der Größe des Fensters, nun sehe ich im Taskmanager aber keine Veränderung zwischen "Fenster ganz klein" und "Fenster maximiert". Liegt vermutlich daran, dass die CBitmap im Videospeicher erstellt wird - aber das ist nur eine vage Vermutung eines Laien 😉

    Gruß Christian



  • meinst Du etwas in dieser Richtung: (und dann vorher/nachher?!)

    void memory(HDC hdc,HWND hWnd)
    {
    		WCHAR testText[]=_T("MemoryStatus");
    		TextOut(hdc,10,10,testText,_tcslen(testText));
    		MEMORYSTATUSEX statex;
    
      statex.dwLength = sizeof (statex);
    
      GlobalMemoryStatusEx (&statex);
    
      wprintf_s(testText,(LPCWSTR)"There is  %ld percent of memory in use.\n",
               statex.dwMemoryLoad);
      		TextOut(hdc,10,30,testText,_tcslen(testText));
      printf ("There are %*I64d total Kbytes of physical memory.\n",
              WIDTH, statex.ullTotalPhys/DIV);
      printf ("There are %*I64d free Kbytes of physical memory.\n",
              WIDTH, statex.ullAvailPhys/DIV);
      printf ("There are %*I64d total Kbytes of paging file.\n",
              WIDTH, statex.ullTotalPageFile/DIV);
      printf ("There are %*I64d free Kbytes of paging file.\n",
              WIDTH, statex.ullAvailPageFile/DIV);
      printf ("There are %*I64d total Kbytes of virtual memory.\n",
              WIDTH, statex.ullTotalVirtual/DIV);
      printf ("There are %*I64d free Kbytes of virtual memory.\n",
              WIDTH, statex.ullAvailVirtual/DIV);
    
      // Show the amount of extended memory available.
    
      printf ("There are %*I64d free Kbytes of extended memory.\n",
              WIDTH, statex.ullAvailExtendedVirtual/DIV);
    
    }
    


  • Hi!

    Wenn ich den Code richtig verstehe, geht es in dem Beispiel um den freien/belegten Speicher des ganzen Systems. Ich will aber nur wissen, wie viel mein Programm in belegt. Ist aber trotzdem gut zu wissen, denn das kannte ich auch noch nicht.

    Gruß


Anmelden zum Antworten