随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

EasyGBS国标GB28181协议视频平台内存上升如何解决?

国标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智能检测识别应用,欢迎关注我们了解更多。

posted on   EasyGBS  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示