Hallo zusammen,
also ich habe da mal eine Frage:
Was macht .NET mit dem ganzen Speicher im PC?
Also folgende Situation:
Ich habe eine kleine Demoanwendung geschrieben.
Das gibt es Komponenten wie ListView, Timer, ImageList, StatusBar, Button.
So!
Jetzt startet die Anwendung, und im Timer-Intervall soll eine Eintrag in der ListView erscheinen, natürlich mit Icon in der Detailansicht. Die Detailansicht umfasst eine Column. Ausgabe des Textes in der Listview ist einfach ein kleiner Text von ca. 20 Zeichen plus dem Wert des aktuellen Counts der Listview-Items.
Die Anwendung startet mit ca. 22MB im RAM. Alle 2 Sekunden nimmt sich die Anwendung 4 - 8 oder manchmal sogar 12 KB mehr. Jetzt habe ich mir das Spielchen etwas angesehen, habe aber nie gesehen, das Speicher freigegeben wurde. Und jetzt zur eigentlichen Problematik.
Diese Anwendung (mit natürlich etwas mehr Inhalt und auch Logik) soll demnächst auf einem Server laufen. Da Server ja bekanntlich etwas länger durchlaufen als normale Desktop-PCs, habe ich das leichte Schwierigkeiten/Denkprobleme was den Speicher angeht.
Jetzt habe ich mir gedacht, dass ich alle 100 Zeilen (Items) ein „Clear“ auf die Items durchführe. Das führte dazu, dass der Speicher nicht ganz so schnell "allokiert" wird. Aber auch hier sehe ich keine Freigabe des RAMs. Mache ich etwas falsch, oder brauche ich jetzt einen PC mit irre viel RAM? Kann man die GC von .NET beeinflussen, wenn ja wie? Gibt es eine andere Möglichkeit dieser Situation Herr zu werden, ohne auf grafische Ausgaben verzichten zu müssen?
Ich kann mir ehrlich nicht vorstellen, das ich der Einzige mit solchen Problemen sein soll, oder etwa doch !?
Danke für die Hilfe . . .
Gruß
Sascha
also ich habe da mal eine Frage:
Was macht .NET mit dem ganzen Speicher im PC?
Also folgende Situation:
Ich habe eine kleine Demoanwendung geschrieben.
Das gibt es Komponenten wie ListView, Timer, ImageList, StatusBar, Button.
So!
Jetzt startet die Anwendung, und im Timer-Intervall soll eine Eintrag in der ListView erscheinen, natürlich mit Icon in der Detailansicht. Die Detailansicht umfasst eine Column. Ausgabe des Textes in der Listview ist einfach ein kleiner Text von ca. 20 Zeichen plus dem Wert des aktuellen Counts der Listview-Items.
Die Anwendung startet mit ca. 22MB im RAM. Alle 2 Sekunden nimmt sich die Anwendung 4 - 8 oder manchmal sogar 12 KB mehr. Jetzt habe ich mir das Spielchen etwas angesehen, habe aber nie gesehen, das Speicher freigegeben wurde. Und jetzt zur eigentlichen Problematik.
Diese Anwendung (mit natürlich etwas mehr Inhalt und auch Logik) soll demnächst auf einem Server laufen. Da Server ja bekanntlich etwas länger durchlaufen als normale Desktop-PCs, habe ich das leichte Schwierigkeiten/Denkprobleme was den Speicher angeht.
Jetzt habe ich mir gedacht, dass ich alle 100 Zeilen (Items) ein „Clear“ auf die Items durchführe. Das führte dazu, dass der Speicher nicht ganz so schnell "allokiert" wird. Aber auch hier sehe ich keine Freigabe des RAMs. Mache ich etwas falsch, oder brauche ich jetzt einen PC mit irre viel RAM? Kann man die GC von .NET beeinflussen, wenn ja wie? Gibt es eine andere Möglichkeit dieser Situation Herr zu werden, ohne auf grafische Ausgaben verzichten zu müssen?
Ich kann mir ehrlich nicht vorstellen, das ich der Einzige mit solchen Problemen sein soll, oder etwa doch !?
Danke für die Hilfe . . .
Gruß
Sascha
Comment