Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > Memory Usage
Yazar
grease


avatar
Istanbul
Kayıt: 22.01.2006
24.04.2008-11:27 #43278
Memory ile ilgili bi problemim var.
Simdi belirli bir saat araliginda calisan bi windows service var. Service ilk basladiginda 8.500 K lerde basliyor ve her defasinda daha da yukari cikiyor. Calismadigi durumlarda bellek kullaniminin dusmesi gerekiyor ama bi turlu beceremedim. Dispose() falan kullandim olmadi. Ne yapmam gerekir?





Grease is still the word


Yazar
tarikkranda


avatar

Kayıt: 07.01.2006
24.04.2008-22:56 #43340
Gerekli sınıflarını IDisposable arayüzünden türeterek Dispose methodunu implemente ettmişsiniz zaten sanırım. Ummanaged resource kullanıyor musunuz hiç servisiniz içerisinde. Bir de finalizer yazmanızı öneririm. Finalizer ile unmanaged resource ları, Dispose ile managed referansları serbest bırakırsanız belki bir sonuç alabilirsiniz.

Ancak tüm bunlarla beraber şunu da belirtmek isterimki GC siz ne yaparsanız yapın non-deterministic çalışır, yani düşük nesil serbest bırakılmış sınıfları gerçekten ne zaman toplayacağını hiç kimse bilemez. Bu nedenle servisinizin büyüyor olması belirli bir noktadan sonra duracaktır diye düşünüyorum. GC ihtiyaç duyduğu anda gerekli toplama işlemlerini gerçekleştirecektir. Bunun için endişelenmeye belki de hiç gerek yoktur. Uzun süreli çalışmalarda stabilite problemi yaşıyor musunuz?





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb