【技术实现步骤摘要】
内存管理方法
本专利技术涉及内存
,尤其涉及一种内存管理方法。
技术介绍
随着无人车技术的快速发展,自动驾驶软件的复杂度也越来越高。自动驾驶软件一般采用C++语言开发,为了适应自动驾驶面临的复杂场景,其软件需要使用多种第三方算法或组件。因此,需要使用内存分配机制,对多种算法分配内存,传统的内存分配机制,一般为动态内存申请与释放机制(new与delete)。但是,传统的内存分配机制对内存的使用限制较多,错误使用时会造成系统崩溃、数据被修改等严重安全问题。首先,传统内存分配机制是基于内存块的管理。使用者需要自己负责内存的申请与释放。如果使用者忘记了释放,这块内存就会成为其他人无法申请的死内存,这就是常见的内存泄露问题。其次,由于内存分配机制依赖的标识符是一个内存地址,使用者无从判断指针指向的内存是否已经被释放了。如果使用者两次释放了同一块内存,会造成内存管理模块的崩溃。最后,由于内存分配机制依赖的标识符是一个内存地址,而释放内存时该内存地址仍然存在,因此如果在后面继续使用该地址指向的内存块, ...
【技术保护点】
1.一种内存管理方法,其特征在于,所述内存管理系统方法:/n根据模块当前的使用个数,确定内存分区的个数;/n根据所述模块的历史内存,确定每个模块的内存分区大小;/n将所述内存分区的地址与模块对应的线程ID进行绑定;/n接收内存申请函数;所述内存申请函数包括第一线程ID;/n查询所述第一线程ID是否对应内存分区的地址;/n当所述第一线程ID对应内存分区的地址时,确定目标内存分区,并在目标内存分区中申请内存。/n
【技术特征摘要】
1.一种内存管理方法,其特征在于,所述内存管理系统方法:
根据模块当前的使用个数,确定内存分区的个数;
根据所述模块的历史内存,确定每个模块的内存分区大小;
将所述内存分区的地址与模块对应的线程ID进行绑定;
接收内存申请函数;所述内存申请函数包括第一线程ID;
查询所述第一线程ID是否对应内存分区的地址;
当所述第一线程ID对应内存分区的地址时,确定目标内存分区,并在目标内存分区中申请内存。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收内存释放函数;所述内存释放函数包括第二线程ID;
查询所述第二线程ID是否对应内存分区;
当所述第二线程ID对应内存分区时,不执行内存释放操作。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当模块结束时,根据所述模块对应的线程ID,确定线程ID对应的内存分区的地址,并释放所述内存分区。
4.根据权利要求1所述的方法,其特征在于,所述根据模块当前的使用个数,确定内存分区的个数具体包括:
在调用模块时,通...
【专利技术属性】
技术研发人员:郝强,潘浩,张放,李晓飞,张德兆,王肖,霍舒豪,
申请(专利权)人:北京智行者科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。