SERVIZIO MANGIA MEMORIA A POCO A POCO

domenica 08 dicembre 2013 - 01.32
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows XP

yag Profilo | Junior Member

SALVE sto creando un servizio windows

ho notato dal taskmanager che memoria cresce di poki kb ma cresce
ho cercato di capire nel mio codice dove è il problema ma non lo ho trovato l'unico new lo faccio in questo codice

l
istaLettureSpettrometro.Add(new int[]{ MemHandle[2047 - 222], MemHandle[2047 - 223], MemHandle[2047 - 722], MemHandle[2047 - 723], MemHandle[2047 - 1759], MemHandle[2047 - 1760] }); .... listaLettureSpettrometro.clear();

secondo questo c'e qualce leak ?

0v3rCl0ck Profilo | Guru

il framework .net ha una gestione della memoria completamente diverso da codice unmanaged tipo un classico c++, esiste un gargabe collector, cioè in poche parole un servizio che risiede attorno al tuo eseguibile, e mantiene la memoria efficiente e pulita, deallocando e qualche volta riutilizzando parti di memoria che non sono più utilizzate.

il garbage collector non è deterministico, e quindi non puoi sapere di precisione quando partirà, può essere normale che la tua applicazione salga di memoria e non venga apparentemente mai rilasciata, ma solo nel momento in cui il sistema lo richiede, o in generale dopo tanto tempo, dipende da troppi fattori, appunto non è deterministico.

puoi utilizzare degli strumenti di memory profile per controllare che non ci siano memory leak:

http://blogs.msdn.com/b/dotnet/archive/2013/04/04/net-memory-allocation-profiling-with-visual-studio-2012.aspx

e altri a pagamento:

http://www.telerik.com/products/memory-performance-profiler.aspx
http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/


Michael Denny
Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic

yag Profilo | Junior Member

si conosco il gc infatti poi ho monitorato il mio servizio per un paio di settimana ed ho visto che l'andamento dell'uso della memoria
era costante ....

grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5