Arbeitsspeicher



  • Hi,

    ich habe dazu (dem Arbeitsspeicher) eine Frage.
    Erläuterung:
    Mich stört immer wenn ich mehrere Programme laufen hatte das
    der Arbeitsspeicher immer weniger wird/wurde. Auch als ich
    die Programme beendet hatte ist der Speicher trotzdem immer noch weniger
    als vorher (bevor ich die Programme geöffnet hatte).
    Wie kann ich die Speicherlecks selbst aufspüren und dann wieder freigeben ?

    Hoffe ihr könnt mir helfen
    weisnichtweiter



  • Hej,
    also spaetestens nach einem Neustart ist der Arbeitsspeicher wieder frei. Wenn du mehrere Betriebssysteme faehrst muesste es im Prinzip auch ausreichen das zu wechseln.
    Zum testen deiner Programme auf Speicherlecks gibt es extra Programme, leider weiss ich nicht wie sie heissen. Musste warten bsi wer kommt ders weiss oder such hier im Archiv oder halt googleln 🤡
    ByeBye, Viking69



  • Im Debug Modus werden dir nach beenden des Programms alle Speicherlecks angezeigt.



  • Hi,

    danke für eure schnelle Antwort.
    Ich will generell die Speicherlecks im Arbeitsspeicher finden und
    wenns geht auch diese wieder freigeben !
    Egal ob es durch mich oder ein anderes Programm verursacht wurde !
    Ist das überhaupt möglich, wenn ja wie ?

    hoffe Ihr könnt mir helfen
    weisnichtweiter



  • du kannst das nur für deine programme rausfinden

    mit mfc ist das sogar relativ einfach

    schau dir mal die zeile an
    hast du vielleicht mal in deinem mfc code gesehn

    #define new DEBUG_NEW
    

    d.h. dass im debugmodus in deinem code alle news durch DEBUG_NEW ersetzt werden

    wenn du nun irgendwo z.b. 1kb speicher holst

    char* g_pChar = new char[1024];
    

    und nie das passenden delete [] g_pChar; aufrufst zeigt dir mfc im debug modus
    nach beenden des programms die zeile an in der du das speicherleck erzeugt hast

    hier noch das msdn thema dazu
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_debug_new.asp



  • Hi,

    danke für den Tip mit DEBUG_NEW.
    Das mit DEBUG_NEW nutze ich schon länger und hat mir
    bisher gute Dienste geleistet.

    Schade, ich wollte eigentlich, wenn das Kind schon
    in den Brunnen gefallen ist, wissen wie soetwas geht !
    Mich stört das zum Beispiel bei Spielen viele
    dabei sind die ihre Speicherzuweisung nicht wieder freigeben.
    Aus diesem Grunde der Arbeitspeicher dann weniger wird.

    Wie (mit welchem Befehl) könnte ich den Arbeitsspeicher direkt
    adressieren/auslesen ?

    hoffe ihr könnt mir noch weiter helfen
    weisnichtweiter


Anmelden zum Antworten