Java Programının Çalışırken Kullandığı Max Hafızayı Hesaplamak ?
-
Sayın Müridler,Mürideler,
Ödev icabı iki tabloyu join eden birşey yazdım fakat hafıza kısıtlaması var.
Dosyalardaki sayfaların boyutu 4096 byte, bize de tüm işlemi yapmak için 11 sayfalık hafıza kullanmaya izin veriyor. Yazdım bitti fakat ne kadar hafıza kullandığımı ölçemiyorum. Runtime.totalMemory() - Runtime.freeMemory() önermişler bazı yerlerde fakat hiçbirşey yapmayan programı çalıştırınca 300kb üzeri hafıza kullanıyordiyor benim zaten maksimum kullanabildiğim 44kb. bir yolu var mıdır?
-
sanirim sorunda eksik kalan yerler var. oncelikle veritabanindaki iki tabloyu join yapip yeni bir tablo elde edeceksin, o halde bunun calistirdigin programin kullandigi memory ile alakasi yok. Senin yapacagin bunu sanal sekilde yerlestirmek, yani sanki 11 page (4096 kB) dan olusan bir hafizan varmis gibi dusunuceksin, yani boyle bir degiskene ihtiyacin var. neyse sadece bu hafizayi kullanarak (yalniz veritabani tablolari icin), bu hafiza bir double dimesion array olabilir yada generics kullan. olay disk hafiza kullanimini gostermek (oku-yaz-tekrar oku-yaz -oku...), cok buyuk veritabanlarinda boyle bir yontem kullaniliyor, degisik algoritmalar, cunku tablolar hafizaya sigmiyor. buraya bakabilirsin:
http://stackoverflow.com/questions/893205/two-pass-multi-way-merge-sort
http://en.wikipedia.org/wiki/Talk%3AMerge_sort#Two-Phase.2C_Multiway_Merge-Sort_.28TPMMS.29
tabii ben sorunu yanlis anlamis olabilirim. kolay gelsin.