netbeans + jpa (hibernate) + mysql5 projemde bi yerde kameradan aldığım resmi veri tabanına eklemem gerekiyor.resmi saklamak için olusturduğum byte dizisi için 2gb gibi bi alan ayırıyorum tabi bu durumda calistirinca heap yetersiz hatası veriyor not uygulama desktop uygulamasıdır daha önce seam ile bi proje geliştirmiştim bu tür bi sorunla karsılasmamaıstım ilgili component olusturulurken seam,jboss AS yada jpa hangisi ve nasıl bu sorunu asıyor?

soruldu: 23 Mar '12, 08:09

trueLife's gravatar image

trueLife
699182430
cevap kabul oranı: 10%

değiştirildi: 24 Mar '12, 01:10

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Bu gibi islemler icin

ByteBuffer directBuf = ByteBuffer.allocateDirect(noBytes);

seklinde Heap icinde olmayan ama Java Process tarafindan kontrol edilen hafiza alanindan (Java Process Heap) yer temin edebilirsiniz. ByteBuffer icin kullanilan yapilar 32 bit oldugu icin max 2 GB alan kullanabilirsiniz. Birden fazla ByteBuffer olusturarak kullanilan hafiza alanini artirmak mümkün. ByteBuffer ile temin edilen hafiza alani normal Heap icinde olmadigindan Garbage Collection sorunlari yasanmamaktadir.

32 bit sistem kullanmiyorsunuz anladigim kadariyla. Normal Heap alanini büyüterek denediniz mi? Ayrica VisualVM ile Heap icinde olup bitenleri görsel olarak takip edebilirsiniz. VisualVM'in VisualGC isimli pluginini tavsiye ederim.

EOF (End Of Fun)

permanent link

cevaplandı: 23 Mar '12, 11:09

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

hocam aslında heap alanını biraz büyütüp resim için gereken alanıda biraz düşürdüm bu sekilde calisıyorum.ancak burada asıl merak ettiğim seam web uygulaması geliştirirken entity içersinde resim için 2gb gibi bi alan ayarlıyorum hiç bi konfigürasyon yapmadığım halde sorunsuz çalısıyor peki o entity instance ı olusturulurken gerekn yer ayrımını kim yönetiyor ve acaba arka plan da bu sekilde byteBuffer falan kullanılıyor olabilirmi ? bunu uygulama sunucusumu yönetir?

(23 Mar '12, 13:29) trueLife trueLife's gravatar image

JVM (Java Virtual Machine = Java Sanal Islemcisi) bünyesinde hafiza (Heap) Garbage Collector (GC) olarak isimlendirilen modül tarafindan yönetiliyor. Object obj = new Object(); seklinde yeni bir nesne olusturudugumuz zaman GC, Eden olarak isimlendirilen Heap alaninda nesne icin gerekli hafiza alanini temin ediyor. Örnegin bir metot bünyesinde obj nesnesini olusturduysak, metot son buldugunda obj nesnesi kullanim disi kaliyor ve GC tarafindan kullandigi hafiza alani tekrar diger nesnelerin kullanimi icin bosaltiliyor. Bu isleme garbage collection (cöp temizleme) ismi veriliyor.

(23 Mar '12, 14:33) özcanacar ♦♦ %C3%B6zcanacar's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×86
×5

Soruldu: 23 Mar '12, 08:09

Görüntüleme: 1,020 kez

Son güncelleme: 24 Mar '12, 01:10

powered by BitNami OSQA