Avatar billede Simon Praktikant
29. august 2007 - 15:00 Der er 1 kommentar og
1 løsning

Hvad bliver der af hukommelsen?

Jeg har lavet et c# program i .NET 2.0. Efterhånden som programmet kører i flere uger stiger memory-forbruget til omkring 1 GB. Jeg ville gerne vide hvad det er som optager hukommelsen. Det er jo noget som Garbage Collectoren ikke kan og må frigive. Er det en String som jeg bare tilføjer 'bevidstløst' i enden på? Eller er det en linked liste, eller hvad er det...

Findes der et godt værktøj, eller en metode som kan hjælpe, eller bare give et praj? Jeg har indtil nu forsøgt mig med:

.NET memory Profiler 3.0 som kan vise hvormeget de forskellige datatyper optager.

Ellers har jeg uden held forsøgt at lave en memory dumt med UserDump, men fik ikke noget ud af at læse dette dump med 'windbg'
Avatar billede Simon Praktikant
12. november 2007 - 09:03 #1
Jeg fandt ud af at antallet af tråde steg liniært over tid, efterhånden som programmet kørte. En anden pc, som programmet interaggerede med blev genstartet automatisk én gang i døgnet. Efter hver genstart af den anden pc, etablerede mit program en ny forbindelse, men glemte at smide den gamle forbindelse væk. Den lå blot og lyttede til ingen nytte, men fyldte bare op. Efter at have rettet dette problem stiger hverken hukommelsesforbruget eller antallet af tråde over tid.
Avatar billede Simon Praktikant
12. november 2007 - 09:47 #2
Hvor Windows Task Manager kan vise det samlede antal tråde for alle processer, kan Scanner.exe vise hver process's antal tråde.

Scanner.exe kan downloades her:
http://www.codeproject.com/w2k/system_scaner.asp
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester