Ich arbeite mit Delphi5 Enterprise Update1 installiert.
Ich habe ein Programm geschrieben, daß in einem Krankenhaus über die serielle Schnittstelle Störungsmeldungen der Zentralen Leittechnik empfängt und diese auf einem Bildschirm in der Telefonzentrale akustisch untermalt meldet. Das ganze läuft auf einem NT4- Rechner SP6a 64MB.
Nach dem Programmstart beansprucht das Programm laut Task-Manager ca. 5MB an Speicher. Die Speichernutzung des Systems liegt bei ca. 45MB.
Natürlich läuft es rund um die Uhr und nach ca. 2 Wochen liegt die Speicherausnutzung des Systems leider bei beachtliche 110MB. Die Grenze der Auslagerungsdatei ist fast erreicht. In der Prozessübersicht wird allerdings keine nennenswerte Veränderung des Speicherverbrauchs meines Programms angezeigt.
Wenn ich aber jetzt das Programm stoppe, dann wird auf einem Schlage an die 65MB Speicher im System wieder frei. Der Übeltäter MUSS allso das Delphiprogramm sein. Natürlich kann ich jetzt die Auslagerungsdatei vergrößern, bringt aber nur kurzen Zeitgewinn. Ich kann auch automatisch das Programm sich beenden und wieder neu starten lassen, aber auch das ist keine elegante Lösung. Im Programm selber werden alle Resourcen ordentlich freigegeben. Es werden allerdings auch ständig in Stringlisten Zeilen eingefügt und wieder gelöscht (halt die eingehenden Meldungen des Leitrechners).
Wer kann helfen? Was ist die Ursache des Problems und wie kann es beseitigt werden?
Ich habe ein Programm geschrieben, daß in einem Krankenhaus über die serielle Schnittstelle Störungsmeldungen der Zentralen Leittechnik empfängt und diese auf einem Bildschirm in der Telefonzentrale akustisch untermalt meldet. Das ganze läuft auf einem NT4- Rechner SP6a 64MB.
Nach dem Programmstart beansprucht das Programm laut Task-Manager ca. 5MB an Speicher. Die Speichernutzung des Systems liegt bei ca. 45MB.
Natürlich läuft es rund um die Uhr und nach ca. 2 Wochen liegt die Speicherausnutzung des Systems leider bei beachtliche 110MB. Die Grenze der Auslagerungsdatei ist fast erreicht. In der Prozessübersicht wird allerdings keine nennenswerte Veränderung des Speicherverbrauchs meines Programms angezeigt.
Wenn ich aber jetzt das Programm stoppe, dann wird auf einem Schlage an die 65MB Speicher im System wieder frei. Der Übeltäter MUSS allso das Delphiprogramm sein. Natürlich kann ich jetzt die Auslagerungsdatei vergrößern, bringt aber nur kurzen Zeitgewinn. Ich kann auch automatisch das Programm sich beenden und wieder neu starten lassen, aber auch das ist keine elegante Lösung. Im Programm selber werden alle Resourcen ordentlich freigegeben. Es werden allerdings auch ständig in Stringlisten Zeilen eingefügt und wieder gelöscht (halt die eingehenden Meldungen des Leitrechners).
Wer kann helfen? Was ist die Ursache des Problems und wie kann es beseitigt werden?
Comment