一、问题现象
每次启动获取相机数据,再到停止,发现下位机程序占用内存都会增加2M左右。
二、问题排查
1.一开始怀疑是应用层关于V4L2调用不对引起的。
通过在linux系统上面接入一个RGB相机,(不启动TOF相机)多次启动和停止RGB相机来验证,发现下位机占用内存不会增加,说明V4L2相关调用没有问题。
2.怀疑是V4L2对接的驱动代码的问题
通过start的时候都重新open相机,停止都close掉相机,发现内存泄露问题依然存在,说明驱动不会泄露,因为已经close掉设备了,驱动都停止了。
3.应用层引起的,只是不知道应用层哪一块引起的
通过在下位机启动之前记录内存使用情况,下位机启动到停止以后,出现内存泄露以后,kill掉下位机,发现内存跟下位机启动之前一样,这种基本可以肯定是下位机应用层引起的内存泄露了。
ps:后面发现是每次启动TOF相机的时候,都调用了GPU初始化函数,引起内存泄露的。