“踩内存”引发的,内存问题分析总结
背景
日常开发中,后端服务为了追求性能,常常会采用C/C++进行开发,享受C/C++带来性能提升的同时,开发者需要自己实现内存管理,只要程序实现上有缺陷,就会导致服务不可用,最近就遇到一次“踩内存”导致的服务不可用。
问题现象
同事A的新版本发布上线后,就收到告警消息,模块产生[……]
日常开发中,后端服务为了追求性能,常常会采用C/C++进行开发,享受C/C++带来性能提升的同时,开发者需要自己实现内存管理,只要程序实现上有缺陷,就会导致服务不可用,最近就遇到一次“踩内存”导致的服务不可用。
同事A的新版本发布上线后,就收到告警消息,模块产生[……]
在C/C++里面,内存管理由开发者自己管理。指针变量总是指向一片内存空间,这片内存空间可以是局部变量、也可以是通过malloc、new申请的。如果申请的内存没有释放,就会导致内存泄漏。最终因为内存耗尽,服务被操作系统OOM掉。
为了解决内存泄漏的问题,Java提出了虚[……]