Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Oxy в Feb 28, 2013, 17:29



Титла: Жаба и слапване на обекти вън от хийпа
Публикувано от: Oxy в Feb 28, 2013, 17:29
Здрасти! Имам малко странен въпрос относно Джава и в частност:
да кажем имам огромни листове обекти /порядъка на 1 000 000 обекта/ и понеже всеки обект всъщност ми държи утф8 кодиран текст със среден размер 11мб. Има ли начин да кажем ако нарежа даден списък да държа част от него в оперативната памет и останалите части да ги извадя някъде и да чакат да бъдат извикани отново в памета. Сега въпроса е как ще ги разкарам тези обекти които вече не са ми важни от хейпа на момента, без да чакам ГК да се събуди?


Титла: Re: Жаба и слапване на обекти вън от хийпа
Публикувано от: zdraganov в Feb 28, 2013, 19:22
Има решение. Отностно използване на паметта извън хийпа може да погледнеш следния линк http://www.kdgregory.com/index.php?page=java.byteBuffer
За да не чакаш GC да освободи просто можеш да направиш objectInstance = null


Титла: Re: Жаба и слапване на обекти вън от хийпа
Публикувано от: Oxy в Feb 28, 2013, 19:47
Ахам, но като го зануля, после трябва да чакам гарбидж колектора да мине и да му събере трупа или да извикам направо гк, което пак не ми е офертно... общо взето ташаци на рояци изглежда работата... а трябва да е жаба..


Титла: Re: Жаба и слапване на обекти вън от хийпа
Публикувано от: romeo_ninov в Mar 01, 2013, 06:34
Здрасти! Имам малко странен въпрос относно Джава и в частност:
да кажем имам огромни листове обекти /порядъка на 1 000 000 обекта/ и понеже всеки обект всъщност ми държи утф8 кодиран текст със среден размер 11мб. Има ли начин да кажем ако нарежа даден списък да държа част от него в оперативната памет и останалите части да ги извадя някъде и да чакат да бъдат извикани отново в памета. Сега въпроса е как ще ги разкарам тези обекти които вече не са ми важни от хейпа на момента, без да чакам ГК да се събуди?
Смени подхода, не ги пази в хийпа, а някоя база данни, може и in-memory