老师您好,请问下文件句柄的泄漏,有没系统的检测和解决方案呢?
来源:4-10 内存优化模拟面试

慕尼黑5552265
2021-03-18
老师您好,请问下文件句柄的泄漏,有没系统的检测和解决方案呢?我了解到的以下文件句柄泄漏常见场景,注意在使用完后关闭或销毁。
- 数据库: Cursor使用完未关闭
- 输入输出:FileInputStream,FileOutputStream,FileReader,FileWriter 等输入输出使用完未关闭
- HandlerThread:HandlerThread 是带有 Looper 的 thread因为声明 Looper 相当于增加了一块缓冲区,需要有一个 FD 来标识。如果反复调用下面这段代码也会出现 FD 泄漏。如果确定不需要 Looper,可以使用Looper.quit() 或者 Looper.quitSafely() 来退出 Looper,避免出现 FD 泄漏。
- socket: 其他大量使用socket通信,但未关闭的情况
- Dialog:使用完Dialog之后需要主动dismiss。否则也会造成泄露(见附1报错log)
写回答
1回答
-
同学你好,我们是定时采集 fd 的数量,超过一定数量则采集所有 fd 的名称,然后上报进行聚合排查。
032021-03-28
相似问题