Program yazarken bazen OutOfMemory->permgen space hatası alıyorum. Bazen de OutOfMemory->heap space hatası alıyorum. Bu hataların birbirinden farkı nedir?
comments
1 references
// Comments are closed.
Heap Space
Yaratılan Java objelerinin tutulduğu yerdir. Java her yeni yaratılan objeler için , Run Time ‘da bir memory ayırır.
Heap bulunan ojbelerin kullanımı bitince, Heap’in içeriğini sürekli denetleyen Garbage Collector amcamız da napar, aç gibi saldırıp bu kullanılmayan objeleri temizler 🙂
Ancak Java kullanımda olmayan objelerin referanslarını saklar, yani birçok obje tekrar kullanılması için bir yer tutarlar. Referans verildiği sürece, objeler Heap Space’de bir yer tutar, Garbage Collector amcamız bunları silemeyecektir. Bu objelerin sayısı da arttıkça … nolcak.
Permgen Space
Class definitions (class tanımları) ve Metadata‘ları barındırır içinde, Kod tabanlı yüksek olan projelerde bunlar fazlalaşırsa, yetersiz perm-gen space (size) ‘a neden olacaktır.
EK NOT: