Использование Display.getInstance (). CreateSoftWeakRef (...) - PullRequest
2 голосов
/ 03 мая 2020

В каких случаях Display.getInstance().createSoftWeakRef(Object o) может быть полезным? Спасибо за объяснение.

Javado c: https://www.codenameone.com/javadoc/com/codename1/ui/Display.html#createSoftWeakRef - java .lang.Object-

1 Ответ

1 голос
/ 04 мая 2020

Кэширование. Мы широко используем его внутри Codename One для кеширования вещей, которые могут вызвать утечку памяти, например, изображений. Это уменьшает перегрузку памяти, поскольку некоторые изображения могут избежать сбора G C, если они все еще необходимы до того, как произойдет цикл G C.

Хорошим примером этого является EncodedImage, который очень эффективен. Он хранит только сжатые данные PNG / JPEG в жесткой справке, но загружает изображение, когда оно нам нужно. Эта ссылка сохраняется в слабой / мягкой ссылке. Обратите внимание, что этот класс может находиться в «заблокированном» режиме, в котором ссылка хранится как жесткая ссылка (это не будет G C 'd) по соображениям производительности.

...