【发布时间】:2016-03-30 09:25:51
【问题描述】:
我们公司有很多在虚拟/真实设备上运行的 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() 没有帮助
【问题讨论】:
-
您正在泄漏文件或套接字或选择器。
-
是的,但是 Java 中的哪些类使用它们?如何找到它们?
标签: java android linux-kernel file-descriptor