内存释放方法、装置、客户端、服务端及存储介质制造方法及图纸

技术编号:37985513 阅读:18 留言:0更新日期:2023-06-30 10:00
本公开涉及计算机技术领域,涉及一种内存释放方法、装置、客户端、服务端及存储介质,该方法包括:响应于第一对象对第二对象的调用,确定第二对象的虚表指针;其中,第一对象为第一进程创建的,第二对象为第二进程创建的,第一进程由客户端以及服务端中的一者运行,第二进程由客户端以及服务端中的另一者运行,虚表指针所指向的虚表中包括指向第二对象的析构函数的析构指针;将析构指针修改为指向自定义析构函数的自定义指针;其中自定义析构函数用于在第二进程释放第二对象的内存时,发送析构指令至第一进程,析构指令用于指示第一进程释放第一对象的内存。由此确保跨进程调用中对象生命周期的可控,避免内存泄漏。避免内存泄漏。避免内存泄漏。

【技术实现步骤摘要】
内存释放方法、装置、客户端、服务端及存储介质


[0001]本公开涉及计算机
,具体地,涉及一种内存释放方法、装置、客户端、服务端及存储介质。

技术介绍

[0002]在Linux 系统中,虚拟内存机制为每个进程分配了线性连续的内存空间,并由操作系统将这种虚拟内存空间映射到物理内存空间。其中,每个进程有自己的虚拟内存空间,而不能操作其他进程的内存空间,也即进程与进程间的内存和数据是不共享的。在实际应用场景中,一个进程的功能往往是有限的,需要与其他进程交互,即跨进程调用。
[0003]在计算机程序跨进程的对象调用中,对象的创建和销毁逻辑在本地或者远端的其它进程空间。其中,创建逻辑通常由应用层代码主动发起,而销毁逻辑则随着进程间某个功能函数或者其它函数的调用而触发,本进程空间无法主动发起和感知其他进程空间对象的销毁,这导致对象的生命周期不可控。

技术实现思路

[0004]本公开的目的是提供一种内存释放方法、装置、客户端、服务端及存储介质,以解决相关技术中的问题。
[0005]为了实现上述目的,本公开实施例的第一方面本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存释放方法,其特征在于,所述方法包括:响应于第一对象对第二对象的调用,确定所述第二对象的虚表指针;其中,所述第一对象为第一进程创建的,所述第二对象为第二进程创建的,所述第一进程由客户端以及服务端中的一者运行,所述第二进程由所述客户端以及所述服务端中的另一者运行,所述虚表指针所指向的虚表中包括指向所述第二对象的析构函数的析构指针;将所述析构指针修改为指向自定义析构函数的自定义指针;其中,所述自定义析构函数用于在所述第二进程释放所述第二对象的内存时,发送析构指令至所述第一进程,所述析构指令用于指示所述第一进程释放所述第一对象的内存。2.根据权利要求1所述的内存释放方法,其特征在于,所述方法还包括:在所述第二进程对所述虚表的操作权限为只读的情况下,新建用于复现所述虚表的结构的自定义虚表;复制所述虚表的内容到所述自定义虚表中;将所述虚表指针修改为指向所述自定义虚表;其中,所述自定义虚表包括指向所述第二对象的析构函数的析构指针。3.根据权利要求1所述的内存释放方法,其特征在于,所述方法还包括:获取所述第二进程的目标头文件,所述目标头文件中包括所述第二对象所在目标类的代码部分;通过预设编译命令对所述目标头文件进行编译,得到所述第二对象的虚表结构;其中,所述虚表结构包括指向析构函数的析构指针以及所述析构指针在所述虚表中的偏移量。4.根据权利要求3所述的内存释放方法,其特征在于,所述方法还包括:根据所述虚表指针以及所述析构指针的偏移量,在所述虚表中确定所述析构指针。5...

【专利技术属性】
技术研发人员:陈露王鲲陈飞邹懋
申请(专利权)人:北京趋动智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1