htop
是 Linux 下常用的进程监控工具,它比传统的 top
更友好、更直观,尤其在分析多线程或多进程程序时非常有用。
以下截图就是在运行 Faster-LIO 实时建图时的 htop
状态展示:
🔍 一、颜色说明
- 白色(或亮色)字体:表示一个主进程或父线程,即程序的入口线程。
- 绿色字体:表示与主进程相关联的子线程或子进程。
- 缩进结构:显示它们之间的父子/主从关系,方便一眼看出整个程序的结构。
🧩 二、以 Faster-LIO 为例分析
- 主线程 PID 28301:运行的是
/home/nvidia/lite_cog/slam/devel/lib/faster_lio/run_mapping_online
。 - 子线程 PID 34799、28359、32090 等:也是执行相同路径的命令,被缩进显示,表明它们是主进程的子线程或 fork 出来的子进程。
这类程序往往是使用多线程进行点云处理、IMU 插值、地图更新等任务,每个绿色行代表一个并发执行的模块。
📊 三、如何解读资源占用
- CPU%:显示每个线程/进程的实时 CPU 占用。比如 PID 28301 达到 328%,说明该线程使用了多个核心。
- MEM%:该线程使用的内存占比。
- TIME+:线程从创建开始累积的运行时间,观察哪一部分最耗时。
- Command:可以看到完整的执行命令行,辨别模块来源。
🛠️ 四、实用技巧
- F5 (Tree View):切换为树形视图,自动显示主从关系(截图中已开启)。
- F6 (Sort):可以按 CPU、内存等排序,快速识别资源瓶颈。
- F3 (Search):搜索特定进程,如输入关键词
lio
定位建图进程。 - F9 (Kill):终止某个线程或进程(需谨慎使用)。
✅ 总结
在使用 htop
分析如 Faster-LIO、ROS2、Python 多线程程序时,善用颜色和缩进结构可以:
- 快速定位主线程与其子模块;
- 分析系统资源瓶颈;
- 判断是否存在死循环、线程泄露等问题。