嵌入式系统性能分析与调试全攻略
1. 代码覆盖率分析
程序执行完毕后,可将.da文件复制回主机并运行gcov工具来分析代码覆盖率。示例如下:
$ gcov daemon.c 71.08% of 837 source lines executed in file daemon.c Creating daemon.c.gcov.生成的.gcov文件以人类可读的形式包含了覆盖率信息。由于.da文件与架构无关,因此可以使用主机的gcov对其进行处理。若要了解gcov的更多使用方法和输出信息,可查阅gcc手册的gcov部分。
2. 系统性能分析
Linux 系统中多个进程会竞争系统资源,量化每个进程对系统负载的影响对于构建平衡且响应迅速的系统至关重要,尤其是对于资源有限且响应要求高的嵌入式系统。这种量化通常也被称为性能、内核或系统调优,下面主要介绍从/proc提取信息和使用 LTTng 这两种调优方法。
2.1 从/proc提取基本信息
/proc文件系统包含虚拟条目,内核通过这些条目提供自身内部数据结构和系统的相关信息。部分信息(如进程时间)是内核在每个时钟滴