Tcp Listener geheugen gebruik

Status
Niet open voor verdere reacties.

bramk

Nieuwe gebruiker
Lid geworden
31 mei 2011
Berichten
1
Hallo,

Ik heb een programma gemaakt in C#.
Het programma doet niets anders dan luisteren over een poort (in dit geval 8001) naar data die binnen komt over die poort.
GPS apparaten sturen data over de poort.
Zodra er data binnen komt, schrijft het programma deze data weg in een MySQL database.

Dit programma werkt in principe prima.
Er is alleen 1 probleem.

Hoe langer het programma aan staat, hoe meer geheugen het gaat gebruiken. Dit is te zien in de task manager op de server.
Op een gegeven moment klapt het programma er dan uit.

Ik maak gebruik van Threads. Bij ieder GPS apparaat wat aan gezet wordt, wordt er een nieuwe thread geopend. In deze thread blijft het programma voor ieder apparaat luisteren of er data binnen komt. In deze thread maak ik gebruik van een NetworkStream om de data uit te lezen. Op het einde gebruik ik een Flush en Close om de networkstream te sluiten.

Toch lijkt het programma steeds meer geheugen te gebruiken, hoe langer deze aan staat.

Heeft iemand enig idee wat dit zou kunnen veroorzaken?

Als iemand meer informatie nodig heeft, hoor ik dat graag.

Bij voorbaat dank!
 
Misschien de Garbage Collector aan het werk zetten (na elke flush&close/per zoveel aantal)?

PHP:
GC.Collect();

Of anders de rotzooi via een API opruimen(na elke flush&close/per zoveel aantal)?

PHP:
        [System.Runtime.InteropServices.DllImport("psapi.dll")]public static extern bool EmptyWorkingSet(IntPtr hProcess);

        private void Legen()
        {
            try { EmptyWorkingSet(System.Diagnostics.Process.GetCurrentProcess().Handle); }
            catch { }
        }

Succes :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan