Pull to refresh

Comments 8

В Objective-C для iOS выше 5.x есть ключевые слова
__weak 
и
__strong 

ну и они-же для объявления свойств

@property ( strong ) ...
@property ( weak ) ...
К примеру на Java добавлю, что тип переменных и параметров я бы объявлял с помощью интерфейса:
private final Reference<Object> ref;

А не так:
private final WeakReference<Object> ref;

Таким образом можно легко перейти от WeakReference к SoftReference или наоборот, изменив только код конструирования ссылки.
UFO just landed and posted this here
Отдельно не помешает заметить, что в Java for Android политика такая, что SoftReference освобождается сразу же при достижении нуля на счетчике, а не «under memory pressure».
The problem is that the runtime doesn't have enough information on which references to clear and which to keep. Most importantly, the runtime doesn't know what to do when given the choice between clearing a soft reference and growing the heap. You may disagree with Dalvik's policy, but by using soft references you've elected to not be involved in that decision.

Your Android device is not like «regular Java». «Regular Java» applications typically run all by themselves on big machines with plenty of RAM and virtual memory. It's okay for «regular Java» to keep soft references around a long time; for them memory is cheap.

The device in your pocket runs more applications simultaneously using less memory. If Dalvik were to retain more soft references, then the OS would have fewer cached processes and the latency to switch between apps would be greater. The memory needs to come from somewhere.


Источник: code.google.com/p/android/issues/detail?id=20015
(были и более старые подобные высказывания от разработчиков, но я уже их не нахожу)
Точнее там есть weak tables, которые аналоги эфемеронов, насколько я понимаю.
Ну в Lua кроме таблиц и нету ничего почти, но да, именно у таблицы можно настроить, чтобы её ключи или значения были слабыми ссылками. При сборке мусора соответствующая пара ключ—значение удаляется из таблицы, насчёт эфемеронов точно не скажу (понятие пока мне не совсем знакомое), а вот на WeakHashMap и Weak*Dictionary оно точно похоже.
Sign up to leave a comment.

Articles