Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Problema con windows service e memoria
giovedì 07 agosto 2008 - 17.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
liscio
Profilo
| Newbie
5
messaggi | Data Invio:
gio 7 ago 2008 - 17:09
salve a tutti,
ho scritto un servizio Windows, in C#.
Il servizio, funziona da "client" pop3 in background.
Ho un timer, che ogni 30 secondi accede ad una serire di caselle pop3, e scorre tutti i messaggi presenti. Alcuni di essi vengono salvati su disco e vengono inserite delle righe su un DB Sql.
Tutto funziona correttamente... l'unico problema è che la dimensione in memoria occupata dal servizio, cresce, e non di poco.
Partendo da una base di 15mb, nel giro di 48 ore, arrivo a 280mb... e dopo due settimane, beh... out of memory.
Ho provato a documentarmi sull'argomento...
Ho provveduto a:
- Chiamare il "GC.Collect()" dopo aver "analizzato" ogni casella POP3.
- Chiamare i metodi "Dispose()" di tutti gli oggetti "disposable" (tutti... almeno spero)
- Eliminare tutti gli oggetti "Statici" (globali)
Qualcuno sa darmi un consiglio?
Grazie.
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
gio 7 ago 2008 - 17:39
Ciao,
stai usando dei componenti di terze parti? Per caso sono degli oggetti com?
Controlla inoltre se hai usato la parola chiave using per gli oggetti IDisposable (
http://msdn.microsoft.com/it-it/library/yh598w02.aspx
). Capita a volte che non vengano gestite le eccezzioni e quindi in caso di errore la dispose non viene richiamata. Con la using questo problema non sussiste perchè la dispose viene richiamata appena si esce dal blocco oppure quando viene generato un errore.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Torna su
Stanze Forum
Elenco Threads
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 !