【LVGL v8.3】切换界面时内存变化分析

2024-06-15 22:36

本文主要是介绍【LVGL v8.3】切换界面时内存变化分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 实现
  • 分析

前言

切换界面需要释放当前控件,否则控件一直存在,同时反复创建会导致内存泄漏

实现

数据结构

static struct
{lv_obj_t *screen;bool screen_del;lv_obj_t *screen_img_bg;
}ui;

创建界面

void setup_scr_ext(void)
{//Write codes screenui.screen = lv_obj_create(NULL);lv_obj_set_size(ui.screen, 800, 480);lv_obj_set_scrollbar_mode(ui.screen, LV_SCROLLBAR_MODE_OFF);//Write codes screen_img_bgui.screen_img_bg = lv_img_create(ui.screen);lv_obj_add_flag(ui.screen_img_bg, LV_OBJ_FLAG_CLICKABLE);lv_img_set_src(ui.screen_img_bg, &_02_alpha_800x480);lv_img_set_pivot(ui.screen_img_bg, 50,50);lv_img_set_angle(ui.screen_img_bg, 0);lv_obj_set_pos(ui.screen_img_bg, 0, 0);lv_obj_set_size(ui.screen_img_bg, 800, 480);lv_obj_add_flag(ui.screen_img_bg, LV_OBJ_FLAG_HIDDEN);//Write style for screen_img_bg, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.lv_obj_set_style_img_opa(ui.screen_img_bg, 255, LV_PART_MAIN|LV_STATE_DEFAULT);//Update current screen layout.lv_obj_update_layout(ui.screen);lv_scr_load_anim(ui.screen, LV_SCR_LOAD_ANIM_NONE, 100, 100, true);
}

删除界面

void scr_ext_del(void)
{lv_obj_clean(ui.screen);
}

清空图片缓存

lv_img_cache_invalidate_src(NULL);

分析

原始内存

free
memheap           pool size  max used size available size
---------------- ---------- ------------- --------------
heap_cma         6291456    3090744       3200712
heap_sys         524472     39788         487048

创建界面

free
memheap           pool size  max used size available size
---------------- ---------- ------------- --------------
heap_cma         6291456    5754480       836560
heap_sys         524472     56972         480800

删除界面

free
memheap           pool size  max used size available size
---------------- ---------- ------------- --------------
heap_cma         6291456    5754480       836560
heap_sys         524472     56972         484736

释放缓存

free
memheap           pool size  max used size available size
---------------- ---------- ------------- --------------
heap_cma         6291456    5754480       3200712
heap_sys         524472     56972         486860

小结:主动释放缓存才会作用于 heap_cma;heap_sys 有损耗,需要检查

这篇关于【LVGL v8.3】切换界面时内存变化分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064773

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM