Daten Import Crash


  • Mod

    Schreib Dir doch mal etwas Code (nach Jeffrey Richter), dass Dir die Nutzung des aktuellen Prozesspeichers ausgibt.

    Wenn das nicht hilft schau Dir die Heaps mit WinDbg an.



  • Erneut vielen Dank für die fixen und doch sehr hilfreichen Antworten.
    Jeffrey Richter sagt mir zwar nichts, aber ich werd mich mal
    umgehend informieren und werde höchstwahrscheinlich direkt
    damit testen!


  • Mod

    Du kennst Jeffrey Richter "Advanced Windows" nicht? Dann hast Du was verpasst.

    Ich spiele auf VMMAP an... aber das geht teilweise auch in WinDbg!

    Es gibt auch das Sysinternals Tool!



  • Also erstmal sagt ja die Ausgabe des freien Speichers gar nichts über den freien virtuellen Speicher des Prozesses aus. Du hast ja eine 32Bit Anwendung, daher könnte es im ungünstigen Fall sein, dass dein Rechner von seinen 12GB Speicher noch 8GB Speicher frei hat, aber davon nichts mehr dem Prozess zur Verfügung gestellt werden kann, weil dieser seine 4GB Adressraum bereits nutzt.

    Es wäre daher viel interessanter mal mitzuloggen, wie groß der zusammenhängend angeforderte Speicherbereich ist.



  • Dein Speicherverbauch würde mich jetzt (wie andere auch) interresieren.

    Nicht dass du auf den Gedanken kommst sehr viel Speicher reservieren zu wollen obwohl du unter Win32 prinzipiell nur 2GByte zur Verfügung hast...



  • Morle schrieb:

    Also erstmal sagt ja die Ausgabe des freien Speichers gar nichts über den freien virtuellen Speicher des Prozesses aus. Du hast ja eine 32Bit Anwendung, daher könnte es im ungünstigen Fall sein, dass dein Rechner von seinen 12GB Speicher noch 8GB Speicher frei hat, aber davon nichts mehr dem Prozess zur Verfügung gestellt werden kann, weil dieser seine 4GB Adressraum bereits nutzt.

    Es wäre daher viel interessanter mal mitzuloggen, wie groß der zusammenhängend angeforderte Speicherbereich ist.

    Naja doch...
    Die Funktion 'GlobalMemoryStatusEx(&statex)' bezieht sich auf den
    virtuellen Adressraum des Prozesses, welches ihn aufruft.
    Sprich die 154MB freien Ressourcen gehören noch zu dem Adressraum
    meines Prozesses.



  • Bitte ein Bit schrieb:

    Dein Speicherverbauch würde mich jetzt (wie andere auch) interresieren.

    Nicht dass du auf den Gedanken kommst sehr viel Speicher reservieren zu wollen obwohl du unter Win32 prinzipiell nur 2GByte zur Verfügung hast...

    There are 3776 free MB of virtual memory //(Am Anfang)
    There are 154 free MB of virtual memory //(Am Ende)

    Speicherverbrauch: 3776-154 = 3622 MB
    Ca. Das wird mir auch von meinem 'ProzessExplorer' angezeigt.

    EDIT@Question: Kennt irgendjemand einen Programm, womit man die Speicherfragmentierung
    unter Windows beobachten kann? Ich habe die Vermutung, dass die 154MB
    nicht am Stück frei sind...

    So in etwa: ----++---+--+-+---++--+

    (- = Belegter Speicher)
    (+ = freier Speicher)

    in dem letzten Schritt, wo der Crash passiert werden 10MB angefordert, die dann nicht mehr allokiert werden können.

    Ich danke nochmals jedem für die Antworten in diesem Thread, hat schon
    wirklich einges gebracht und geholfen 🙂
    So langsam komm ich der ganzen Sache immer näher!


  • Mod

    Die Antwort habe ich Dir schon gegeben.
    VMMAP.
    Klick auf das Programm und schau Dir an was "Free" ist. Dor bekommst Du alle Segmente angezeigt...



  • Martin Richter schrieb:

    Die Antwort habe ich Dir schon gegeben.
    VMMAP.
    Klick auf das Programm und schau Dir an was "Free" ist. Dor bekommst Du alle Segmente angezeigt...

    --> Wird sofort gemacht!



  • Nun war es wirklich so,
    dass von den 154MB am Ende der längste freie Block nur noch 7,6MB war.
    Jedoch wurde am Ende nochmals versucht 10MB zu reservieren.
    -->VMMap ist ein Super mächtiges Tool
    (An dem Punkt HERZLICHSTEN Dank an "Martin Richter")

    Nun muss ich nur noch den Algorithmus für die Speicherreservierung ändern,
    aber das sollte dann auch weiter kein großes Problem mehr sein.
    (evtl mit 'placement new')

    Aber auch vielen dank an alle anderen Thread-Teilnehmer
    für eure Bemühungen!

    Gruß Kizane28! 🕶


  • Mod

    Bau Dein Tool unter 64bit 😉


Anmelden zum Antworten