Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

2
Heap space ile permgen space arasındaki fark nedir?

Çözüldü 1 Cevaplar 400 Gösterim Java
Program yazarken bazen OutOfMemory->permgen space hatası alıyorum. Bazen de OutOfMemory->heap space hatası alıyorum. Bu hataların birbirinden farkı nedir?

1 cevap

0
En İyi Cevap

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. 

  • java.lang.OutOfMemoryError: Java heap space .

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.

  •  java.lang.OutOfMemoryError: PermGen

EK NOT:

  • Java 8'den itibaren, PermGen Space  artık MetaSpace olarak değiştirilmiştir. Daha verimlidir, default olarak unlimited (sınırsız olacak) şekilde tanımlanmış. Ama bu maksimum alanın limiti de istenirse ayarlanabilir.
  • heap ve permgen için space ek olarak  size ve  area da duyabilirsiniz.
16 Ocak 2016 tolga (1,618 puan) cevapladı
17 Ocak 2016 kenan seçti
...