国标GB28181协议视频平台EasyGBS内存上升问题的排查与解决

国标GB28181协议视频平台EasyGBS已经实现了十分丰富的安防视频功能,如视频直播、录像、检索与回放、存储、告警、语音对讲、平台级联等能力。去年我们也更换了新内核,新内核版的EasyGBS性能更加稳定和流畅。

EasyGBS支持设备以GB28181协议接入,能兼容市面上的各种视频源设备,其强大的视频能力既可以作为业务平台,也能作为视频能力平台进行调用,有广泛的应用场景,如明厨亮灶、雪亮工程、平安乡村等。

用户的EasyGBS接入大量设备、或者运行时间过长时,会出现内存上升的情况。关于内存这一块,我们之前也写过不少的技术文章,大家可以翻阅历史文章进行查阅。今天我们来分享如何对EasyGBS的内存泄露情况进行排查与解决。

GO语言的内存释放是自动调用gc,无须代码调用gc。在排查时,发现在Cgo模块GO语言类型转换为C的结构cbytes时候,c.free调用有问题,unsafe.Pointer(cbytes)和&cbytes的内存地址不一样,如下图:

初步判断是这块free的时候参数有问题,于是将C.free(unsafe.Pointer(cBytes)) 改成C.free(cBytes)。修改后发现内存上升明显减少,但是还存在释放不了的情况,于是在main.go中加上主动释放GO内存的方法:

本地测试后发现,上述修改后后EasyGBS的内存不会出现持续升高的情况了。后期长时间运行,发现不添加主动gc的操作也可以,程序会在2个小时以上才会清空一次内存。

随着大数据技术与深度学习的持续提升,人工智能应用也逐渐与安防行业进行了深度融合,安防智能化已经成为行业的趋势。基于AI深度学习算法,智能化的安防视频监控平台可以提取视频特征、对视频数据进行结构化处理等,在应用场景中实现如人脸识别、人流量统计、人群密度检测、安全帽检测、烟火检测、危险行为识别、物体识别、目标追踪等能力。将前端边缘计算、后端云计算、大数据平台、视频图像AI智能分析技术相结合已经是当前安防视频监控市场的发展方向。

TSINGSEE青犀视频平台(典型的如EasyCVR视频融合云平台)结合前端边缘计算AI智能摄像机,也已经实现多场景下的视频+AI智能检测识别应用,欢迎关注我们了解更多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值