|
16.06.2008, 14:41
|
#1
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Lib_memclean: очистка оперативной памяти от "мусора".
Данная библиотека позволяет выгружать из памяти неиспользуемые данные.
Например:
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.
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо ViNT за это полезное сообщение:
|
|
17.06.2008, 08:13
|
#2
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
Спасибо за новую библиотеку. Обязательно добавлю её в сборник.
|
(Offline)
|
|
13.12.2009, 15:48
|
#3
|
ПроЭктировщик
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений (для 14 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
Мне вот интересно - а насколько использование данной библиотеки обоснованно и необходимо?
Ведь по идее Java-машина сама должна чистить и дефрагментировать память.
Использование данной либы мне представляется неким стимулятором-допингом, который вмешивается в работу приложения в среде Java, что может повлечь непредсказуемые последствия на разных телефонах, особенно на LG, Samsung и старых Nokia.
Хотелось бы услышать мнение участников форума.
|
(Offline)
|
|
13.12.2009, 19:50
|
#4
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
Действительно, java сама через определенные промежутки времени вызывает сборщик мусора, но иногда нужно экстренно очистить память, не дожидаясь, пока система сделает это сама. Использование данной библиотеки позволяет вручную вызвать сборщик мусора в нужное время. При этом используется стандартный метод java, по сути то же самое, что система делает автоматически. Так что, нарушения в работе мидлета или JVM в целом это вызывать не должно.
|
(Offline)
|
|
13.12.2009, 21:49
|
#5
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
От себя добавлю, что ручной вызов сборщика мусора всё равно не гарантирует того, что память будет действительно очищена. Это всего лишь совет телефону, что память неплохо бы и почистить, а вот последнее слово остаётся всё же за телефоном. Ему решать когда реально делать очистку. Для повышения вероятности действительного вызова сборщика мусора нужно после вызова сборщика ещё и делать паузу Delay секунд эдак на 5. Стоит ли говорить, что это вызовет явные тормоза в работе приложения.
|
(Offline)
|
|
16.12.2009, 23:48
|
#6
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Афула
Сообщений: 1,700
Написано 658 полезных сообщений (для 1,963 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
хм... написал простенькую прогу, что б затестить библу... на емуляторе всё пашет, как надо, но вот на моём сони-ериксон ш300ай после очистки свободной хип-памяти оказывается меньше, чем до неё...
Причина ли та, что озвучил odd в предыдущем посту?
Выкладываю сурсы.
|
(Offline)
|
|
17.12.2009, 00:10
|
#7
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
Сложно сказать, в чем причина. Я проверял только на довольно тяжелых изображениях, все работало, здесь же изображение займет в памяти не много места. Вообще больше похоже, что это особенности работы JVM конкретного телефона. Возможно также, что эффект от стирания копий изображения (поскольку он потребляет немного памяти) незаметен из-за того, что память тратится на добавление комманд и прочих компонентов на форму.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.12.2009, 18:35
|
#8
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Афула
Сообщений: 1,700
Написано 658 полезных сообщений (для 1,963 пользователей)
|
Ответ: Lib_memclean: очистка оперативной памяти от "мусора".
спасибо! попробую ещё увеличить размер изображения и проверить...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:38.
|