1. 使用MAT确定了泄漏的对象类型为T,通过反编译fusion的源代码,发现toString()方法为“Filter”,猜想T为Filter。
2. 如何对导致Filter泄漏呢?断开网线?异常退出?通过验证,以上两种均可以导致Corba对象无法被销毁,进而导致T对象泄漏在OpenFusion中。
总结下Java程序的debug,
1. 总是可以找到根源的,随着时间的推移,对问题的理解也在深入。
2. 发现问题的苗头时,应该接着深挖下去,比如发现T为Filter,可以想到什么地方创建了Filter?
3. 利用工具MAT, JProfiler等。