Hallo,
ich habe ein Problem mit der Speicherverwaltung meines Prgramms. Dieses Programm ist im Grunde eine kleine Anwendung, die im Hintergrund auf bestimmte Anforderungen (die einfach über die Zwischenablage "transportiert" werden) wartet. Wenn eine solche Anforderung eintrifft, wird ein recht umfangreiches und wohl doch eher aufwendiges Formular geöffnet. Beim ersten Mal dauert das auch noch ein, zwei Sekunden, bis es komplett dargestellt wird, aber ab dem zweiten Mal ist es dann deutlich schneller. Offenbar wird es nach Schließen der Form (Close) nicht komplett aus dem Speicher entfernt. Der Nachteil ist eben, dass der Speicherbedarf im Laufe der Zeit zu sehr ansteigt. Ich nahm an, dass der Garbage Collector dann irgendwann doch mal aufräumt, aber offenkundig tut er das nicht.
Um ehrlich zu sein, ich weiß nicht, ob der Code vollständig managed ist, da ich auch Crystal Reports und ein paar Infragistics-Steuerelemente benutze. Aber selbst wenn er unmanaged ist, muss es doch eine Möglichkeit geben, den Speicher explizit wieder frei geben zu können. Wie bewerkstellige ich das?
Ich bin für jeden Hinweis dankbar ...
Dave
ich habe ein Problem mit der Speicherverwaltung meines Prgramms. Dieses Programm ist im Grunde eine kleine Anwendung, die im Hintergrund auf bestimmte Anforderungen (die einfach über die Zwischenablage "transportiert" werden) wartet. Wenn eine solche Anforderung eintrifft, wird ein recht umfangreiches und wohl doch eher aufwendiges Formular geöffnet. Beim ersten Mal dauert das auch noch ein, zwei Sekunden, bis es komplett dargestellt wird, aber ab dem zweiten Mal ist es dann deutlich schneller. Offenbar wird es nach Schließen der Form (Close) nicht komplett aus dem Speicher entfernt. Der Nachteil ist eben, dass der Speicherbedarf im Laufe der Zeit zu sehr ansteigt. Ich nahm an, dass der Garbage Collector dann irgendwann doch mal aufräumt, aber offenkundig tut er das nicht.
Um ehrlich zu sein, ich weiß nicht, ob der Code vollständig managed ist, da ich auch Crystal Reports und ein paar Infragistics-Steuerelemente benutze. Aber selbst wenn er unmanaged ist, muss es doch eine Möglichkeit geben, den Speicher explizit wieder frei geben zu können. Wie bewerkstellige ich das?
Ich bin für jeden Hinweis dankbar ...
Dave
Comment