Speicherbedarf eines Datasets in den Griff bekommen / Speicher wieder freigeben

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von OlafSt.

    Auch ich habe keine Lust, wieder und wieder n Mio Datensätze zu überprüfen, obwohl das schon etliche Male gemacht wurde, das Design stammt nicht von mir.


    Die "optimalere Lösung" kann auf Dauer nur sein - selbst wenn Du jetzt aktuell das Speicherprolbem gelöst bekommst - genau diese Überprüfung nicht immer wieder auszuführen - egal welche Hilfsmittel Du dabei als "Krücke" einsetzen musst und kannst.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thias“ ()

    So, ich habe mal einige weitere Tests gemacht.

    Zunächst einmal hat das manuelle Auslösen des GC einen deutlichen Berg Speicher freigegeben - aber nicht alles. Irgendwo klammert sich noch was fest. Ich kümmer mich später darum, die ganze Routine ist ohnehin stark renovierungsbedürftig...

    Dann versuchte ich den DataReader und die Wirkung war enorm. Speicherprobleme gibts nun nicht mehr - wie auch, wenn man nur noch einen Datensatz im Speicher hat. Aber viel mehr ist auch nicht nötig und das das ganze eigentlich ein ForwardOnlyCursor ist, kommt mir nur entgegen. Fühlt sich schon fast wieder wie Oldschool-ADO-Programmierung an. Die Performance hat ein klein wenig gelitten, schließlich sind nun mehrere Roundtrips übers Netzwerk an den Server nötig, statt den Record einfach aus dem Speicher zu fischen. Aber das hält sich sehr in Grenzen und wiegt den enormen Speichervorteil nie und nimmer auf.

    Dieses Problem betrachte ich als gelöst. Danke an alle, die sich den Kopf zebrochen haben !