我是靠谱客的博主 甜美乌冬面,最近开发中收集的这篇文章主要介绍关于java freeswitch esl inbound client长时间使用内存泄漏处理,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
直入主题,在使用源生的esl inbound client 时长时间运行后可能会出现内存溢出的错误,导致程序崩溃,最开始以为是自己的esl client 频繁检测重连方法有问题,导致内存得不到释放,后面再深入跟进inbound.client方法中发现其实并不是我得锅,实际问题是esl client代码中没有好好用DirectByteBuffer造成的问题。想深入理解的朋友可以看一下,DirectByteBuffer 与ByteBuffer 了解一下,因为我也没有全部搞懂,所以这里不具体讲这一块区别。
如果深入改这一块可能涉及的太多,本人在这推荐一种简单的解决方法,找到inbound.client中的的这行,将NioClientSocketChannelFactory 放到方法外声明,改为静态类,方法里直接调用就可以解决长时间使用会抛出内存溢出的问题,因为我们使用inbound内联,无需每次使用都去new。
最后
以上就是甜美乌冬面为你收集整理的关于java freeswitch esl inbound client长时间使用内存泄漏处理的全部内容,希望文章能够帮你解决关于java freeswitch esl inbound client长时间使用内存泄漏处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复