Hallo,
ich habe einen Dienst für Windows entwickelt, der über
TCP/
Ip Kommandos entgegen nimmt und beantwortet. Der Dienst ist dafür ausgelegt, dauerhaft auf Servern zu laufen. Leider zeigt sich, dass der Dienst im Laufe der Zeit immer mehr Speicher verbraucht.
Auffällig ist, dass vor allem der virtuelle Speicher steigt.
Ich habe bereits den gesamten Quellcode geprüft, ob es irgendwo Speicherlecks gibt.
Wenn ich das Programm als EXE laufen lasse, zeigt sich das gleiche Verhalten.
Für die
TCP/
IP Kommunikation nutzte ich die
Indy 10 Komponente TidTcpServer und genau diese habe ich im Verdacht. Ich vermute, das die
Indy Komponente neue Threads erzeugt, diese aber nicht wieder beendet.
Kennt vielleicht jemand dieses Verhalten oder hat jemand eine Idee, woran es liegen könnte?
Hier noch ein paar zusätzliche Informationen:
Delphi 2006
Indy 10
Datenbankzugriff per Ibobjects auf Firebird
der Dienst wird ca. alle 10 Sekunden von ca. 10 Rechner kontaktiert.
Speicherverbrauch:
Tag,Speicher,davon ausgelagert
1,11 MB,04 MB
2,27 MB,12 MB
3,24 MB,18 MB
4,37 MB,26 MB
5,54 MB,37 MB
6,65 MB,44 MB
7,63 MB,58 MB