在我们公司,我们有很多运行在虚拟/真实设备上的UI测试。测试经过一段时间后会随机崩溃,我认为这是文件描述符超限的结果:我使用了
ls /proc/${PID}/fd | wc -l
和lsof -p ${PID}
,但它并没有帮助很多——lsof中的大部分行看起来像:
30015 u0_a104 678 sock 859560 socket:[859560]
30015 u0_a104 679 0000 0,8 4539 anon_inode:[eventpoll]
30015 u0_a104 680 0000 0,8 4539 anon_inode:[eventfd]
30015 u0_a104 681 0000 0,8 4539 anon_inode:[eventfd]
30015 u0_a104 682 0000 0,8 4539 anon_inode:[eventpoll]
30015 u0_a104 683 0000 0,8 4539 anon_inode:[eventfd]
30015 u0_a104 684 0000 0,8 4539 anon_inode:[eventpoll]
30015 u0_a104 685 0000 0,8 4539 anon_inode:[eventfd]
所以我的问题是:是否有任何与Android/Java/Linux相关的工具或实用程序可以找到泄漏的源头? P.S. System.gc()没有起到作用。