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
+2 oy
451 gösterim
Program yazarken bazen OutOfMemory->permgen space hatası alıyorum. Bazen de OutOfMemory->heap space hatası alıyorum. Bu hataların birbirinden farkı nedir?
Java kategorisinde (3.1k puan) sordu
düzenledi

1 cevap

0 oy
 
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.
(1.6k puan) cevapladı
seçti

İlgili sorular

0 oy
1 cevap 56 gösterim
56 gösterim 9 Ocak Java kategorisinde kenan (3.1k puan) sordu
0 oy
1 cevap 65 gösterim
0 oy
1 cevap 100 gösterim
100 gösterim 6 Kasım 2017 Genel Kavramlar kategorisinde yildiz (186 puan) sordu
0 oy
1 cevap 320 gösterim
320 gösterim 4 Ağustos 2017 Algoritma kategorisinde erkanerkisi (207 puan) sordu
0 oy
1 cevap 23 gösterim
...