forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_memclean: очистка оперативной памяти от "мусора". (http://forum.boolean.name/showthread.php?t=6021)

ViNT 16.06.2008 14:41

Lib_memclean: очистка оперативной памяти от "мусора".
 
Вложений: 1
Данная библиотека позволяет выгружать из памяти неиспользуемые данные.
Например:
Код:

program imFreeTest;
uses memory,memclean;
var
 Im1,im2,im3,nil:image;
begin
  drawText('BL:'+integertostring(memory.free), 0, 0);
  repaint;
  im1:=LoadImage('/image.png');//заполняем память
  im2:=LoadImage('/image.png');
  im3:=LoadImage('/image.png');
  drawText('AL:'+integertostring(memory.free), 0, 10);
  repaint;
  Im1:=nil;//"уничтожение" объектов, обратите внимание,
  //изображение nil не загружено
  Im2:=nil;
  Im3:=nil;
  drawText('AD:'+integertostring(memory.free), 0, 20);
  repaint;
  memclean.clean;//чистка памяти
  drawText('AC:'+integertostring(memory.free), 0, 30);
  repaint;       
 delay(20000);
end.


odd 17.06.2008 08:13

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
Спасибо за новую библиотеку. Обязательно добавлю её в сборник.

Skythrone 13.12.2009 15:48

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
Мне вот интересно - а насколько использование данной библиотеки обоснованно и необходимо?
Ведь по идее Java-машина сама должна чистить и дефрагментировать память.

Использование данной либы мне представляется неким стимулятором-допингом, который вмешивается в работу приложения в среде Java, что может повлечь непредсказуемые последствия на разных телефонах, особенно на LG, Samsung и старых Nokia.

Хотелось бы услышать мнение участников форума.

ViNT 13.12.2009 19:50

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
Действительно, java сама через определенные промежутки времени вызывает сборщик мусора, но иногда нужно экстренно очистить память, не дожидаясь, пока система сделает это сама. Использование данной библиотеки позволяет вручную вызвать сборщик мусора в нужное время. При этом используется стандартный метод java, по сути то же самое, что система делает автоматически. Так что, нарушения в работе мидлета или JVM в целом это вызывать не должно.

odd 13.12.2009 21:49

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
От себя добавлю, что ручной вызов сборщика мусора всё равно не гарантирует того, что память будет действительно очищена. Это всего лишь совет телефону, что память неплохо бы и почистить, а вот последнее слово остаётся всё же за телефоном. Ему решать когда реально делать очистку. Для повышения вероятности действительного вызова сборщика мусора нужно после вызова сборщика ещё и делать паузу Delay секунд эдак на 5. Стоит ли говорить, что это вызовет явные тормоза в работе приложения.

baton4ik 16.12.2009 23:48

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
Вложений: 1
хм... написал простенькую прогу, что б затестить библу... на емуляторе всё пашет, как надо, но вот на моём сони-ериксон ш300ай после очистки свободной хип-памяти оказывается меньше, чем до неё...
Причина ли та, что озвучил odd в предыдущем посту?

Выкладываю сурсы.

ViNT 17.12.2009 00:10

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
Сложно сказать, в чем причина. Я проверял только на довольно тяжелых изображениях, все работало, здесь же изображение займет в памяти не много места. Вообще больше похоже, что это особенности работы JVM конкретного телефона. Возможно также, что эффект от стирания копий изображения (поскольку он потребляет немного памяти) незаметен из-за того, что память тратится на добавление комманд и прочих компонентов на форму.

baton4ik 17.12.2009 18:35

Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
 
спасибо! попробую ещё увеличить размер изображения и проверить...


Часовой пояс GMT +4, время: 18:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot