1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zlgopen-awtk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
out_of_memory.md 2.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 22:52 91e8897

Обработка при нехватке памяти

Когда в приложении AWTK происходит сбой при выделении памяти, предпринимаются следующие попытки:

    1. Освобождается кэш изображений, которые не использовались в течение последних 10 секунд, после чего менеджер памяти делает новую попытку выделения памяти.
    1. Освобождается весь кэш изображений, после чего менеджер памяти пытается выделить память.
    1. Отправляется событие EVT_LOW_MEMORY, и приложение может освободить ненужную память. После этого менеджер памяти снова пытается выделить память.
    1. Отправляется событие EVT_OUT_OF_MEMORY. В этом случае приложение должно освободить критически важную память, сохранить важные данные и перезапустить приложение.
    1. Если приложение не перезапускается после шага 4, менеджер памяти возвращает NULL, а что произойдёт дальше — неизвестно.

Чтобы избежать утечки памяти, которая может привести к нехватке памяти, рекомендуется компилировать приложение с использованием версии awtk-linux-fb и проверять наличие проблем с утечкой памяти с помощью valgrind.

Пример регистрации событий:

static ret_t wm_on_low_memory(void* ctx, event_t* evt) {
  log_debug("low memory\n");
  return RET_OK;
}

static ret_t wm_on_out_of_memory(void* ctx, event_t* evt) {
  log_debug("out of memory\n");
  return RET_OK;
}

widget_t* wm = window_manager();
widget_on(wm, EVT_LOW_MEMORY, wm_on_low_memory, wm);
widget_on(wm, EVT_OUT_OF_MEMORY, wm_on_out_of_memory, wm);

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zlgopen-awtk.git
git@api.gitlife.ru:oschina-mirror/zlgopen-awtk.git
oschina-mirror
zlgopen-awtk
zlgopen-awtk
master