Автор Тема: Жаба и слапване на обекти вън от хийпа  (Прочетена 1293 пъти)

Oxy

  • Напреднали
  • *****
  • Публикации: 253
  • Distribution: Fedora / Gentoo / Debian
  • Window Manager: KDE (4.2/ 3.5)
    • Профил
    • WWW
Здрасти! Имам малко странен въпрос относно Джава и в частност:
да кажем имам огромни листове обекти /порядъка на 1 000 000 обекта/ и понеже всеки обект всъщност ми държи утф8 кодиран текст със среден размер 11мб. Има ли начин да кажем ако нарежа даден списък да държа част от него в оперативната памет и останалите части да ги извадя някъде и да чакат да бъдат извикани отново в памета. Сега въпроса е как ще ги разкарам тези обекти които вече не са ми важни от хейпа на момента, без да чакам ГК да се събуди?

zdraganov

  • Напреднали
  • *****
  • Публикации: 16
  • Distribution: Fedora 16/17, CentOS 6.3, Red Hat Enterprise Linux Server 6.2
  • Window Manager: KDE, LXDE
    • Профил
Re: Жаба и слапване на обекти вън от хийпа
« Отговор #1 -: Feb 28, 2013, 19:22 »
Има решение. Отностно използване на паметта извън хийпа може да погледнеш следния линк http://www.kdgregory.com/index.php?page=java.byteBuffer
За да не чакаш GC да освободи просто можеш да направиш objectInstance = null
Активен

Живко Драганов

Oxy

  • Напреднали
  • *****
  • Публикации: 253
  • Distribution: Fedora / Gentoo / Debian
  • Window Manager: KDE (4.2/ 3.5)
    • Профил
    • WWW
Re: Жаба и слапване на обекти вън от хийпа
« Отговор #2 -: Feb 28, 2013, 19:47 »
Ахам, но като го зануля, после трябва да чакам гарбидж колектора да мине и да му събере трупа или да извикам направо гк, което пак не ми е офертно... общо взето ташаци на рояци изглежда работата... а трябва да е жаба..

romeo_ninov

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

0x2B|~0x2B