两天时间,六次误判,最后被 strace + /proc 揪出来的 C++ 陷阱,最终只修两行代码。症状边缘 AI 盒子运行 30 分钟后推理 FPS 异常下降。日志每隔 10~15 秒出现一条:W InferLock held 10s, force releasing系统没有崩溃,线程数稳定,内存稳定,0 FATAL。但又确实推理中断了——每隔 15 秒推理线程卡住一次,10 秒后被超时机制强制释放,然后下一个推理又开始,又被卡住。永不停歇的自愈循环。CPU 占用率低得异常(3%,正常应该是 5%+),说明推理线程没在干活。第一天:误判六连发1. "UVC 摄像头退化"直觉:USB 摄像头老化,等时传输降速 → 帧率下降。尝试:给 V4L2 采集加select(1s)超时检测。结果:看门狗能跑了,帧停检测正常。但推理还是卡。2. "mmap 页缓存被回收"分析:NCNN 模型用 mmap 加载,空闲 7 分钟后模型页被内核回收 → 推理时触发 page fault → 卡。尝试:mlock()锁定模型页。结果:页的确锁住了,但推理依旧卡。3. "bionic malloc 全局锁竞争"分析:推理过程分配中间张量 →posix_memalign→ bionic 的free()用 futex 做全局锁。尝试:把PoolAllocator置空,blob_allocator = nullptr,全部走裸 malloc。结果:更卡了(每层都 malloc,竞争更大)。4. "