Linux性能分析:Perf & CPU火焰图

Perf+火焰图可以快速找到Linux性能瓶颈。

完美记录: -perfrecord -e cpu-clock -g -p <进程 ID>。
记录CPU时间和调用堆栈。
打印 perf.data 文件。

分析: -perfscript > perf.unfold。
将堆栈信息转换为可读。

火焰图: git 克隆 https://github.com/brendangregg/FlameGraph。
-stackcollapse-perf.pl perf.unfold > perf.folded。
-flamegraph.pl perf.folded > perf.svg。
生成 svg 火焰图。

分析: -y轴:调用堆栈深度,从下到上。
-x轴:样本数,宽度=执行时间比例。
广泛的功能=性能瓶颈。
鼠标悬停 = 函数名称 + 样本数 + 百分比。

问题管理: -未知功能:缺少调试信息。
-perfrecord -e cpu-clock --call-graph-dwarf -p <进程 ID>。
-dwarf 参数会增加文件大小,请注意空间。

示例: -read_image_data 和 render_frame_rect 很大 = 更耗时。
这些功能必须进行优化。

自己掂量一下。

linux用qt还是lvgl

LVGL适合资源有限的设备。

轻量级,只需几 KB 内存即可工作。

API简单,支持单色和彩色显示。

开源免费,文档充足。

智能家居、工业HMI等场景。

我还在检查,但这已经足够了。

Qt适合复杂的应用程序。

功能齐全,全平台稳定。

高效的开发和可视化工具。

像 Raspberry Pi 这样的设备。

不确定,但这就是经验。

自己掂量一下。

香橙派OrangePi Zero2通过ili9488显示lvgl

啊,通过ili9 4 8 8 查看OrangePiZero2 lvgl的过程似乎相当复杂。
上周有一位客户问了我类似的问题,所以我将按照这个流程向您解释一下。

首先,你需要有一个可以正常显示的3 .5 英寸SPI显示器,然后需要准备你的开发环境,使用Ubuntu2 2 .04 LTS,一些Visual Studio代码,gcc-arm-9 .2 -2 01 9 .1 2 -x8 6 _6 4 -aarch6 4 -none-linux-gnu交叉编译器,以及lvgl源代码。

所以需要修改源码,主要是lv_conf.h文件。
您需要将颜色深度调整为1 6 ,以便屏幕分辨率能够适应。
接下来,在 lv_drv_conf.h 中,您需要将 fb0 更改为 fb1 这是由于您的特殊配置造成的。

所以,需要编辑Makefile,注释掉原来的CC,然后指向自定义编译器目录。
这个编译过程是在VSCode终端中完成的。
创建一个新终端并运行命令。

编译完成后,可以使用file命令来查看。
如果看到ARmaarch6 4 这四个字就说明成功了。
此时,您可以将编译好的可执行文件通过ssh传输到Orange Pi上运行。

至于鼠标显示功能,您注意到屏幕没有配备触摸屏吧?然后添加鼠标控制。
在lv_drv_conf.h中选择鼠标作为事件源,然后在main.c中注释掉触摸屏初始化并添加鼠标初始化。
下载 mouse_cursor_icon.c 文件并将其集成到您的项目中。

编辑Makefile,编译后上传到Orange Pi,这样鼠标就可以显示了。
最后,为了保持项目根目录完整,您需要编辑Makefile以将构建输出文件指向指定目录。

我阅读了几篇参考文章,例如在 Linux 上使用 lvgl、在 Linux 环境中使用 LVGL 以及 LinuxFramebuffer 实验,它们提供了额外的学习资源和指导。

无论如何,这取决于你。
整个过程相当复杂,必须一步一步来。
我还在考虑这个问题,可能需要一些时间才能帮助您解决所有问题。