[发明专利]共享内存管理方法、装置、计算机设备和存储介质在审
申请号: | 202110782884.0 | 申请日: | 2021-07-12 |
公开(公告)号: | CN113485834A | 公开(公告)日: | 2021-10-08 |
发明(设计)人: | 张卫;赵楠;何志东 | 申请(专利权)人: | 深圳华锐金融技术股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;H04L12/02 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 聂榕 |
地址: | 518048 广东省深圳市福田区梅林街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享 内存 管理 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种共享内存管理方法、装置、计算机设备和存储介质。所述方法包括:通过应用调用操作系统的第一接口申请内存,从构建好的共享内存池中获得指定大小的内存块,其中,所述内存块用于构造应用消息,所述内存块不低于一次业务处理需求的内存;将所述内存块的地址发送给网卡,使网卡通过直接存储器访问接口根据所述地址直接读取所述内存块,将所述内存块上的应用消息发送给数据接收方;其中,所述共享内存池已向所述网卡注册,使所述网卡具有所述共享内存池的读权限。采用本方法能够在一定程度上提高进程执行效率。
技术领域
本申请涉及内存管理技术领域,特别是涉及一种共享内存管理方法、装置、计算机设备和存储介质。
背景技术
随着内存管理技术的发展,为了实现多进程和多线程之间的内存共享,提高数据传输的效率,降低内存占用,因而出现了共享内存管理技术。
传统技术中,通过常见的线程间通信或者是进程间通信的机制将数据发送给目标模块或者应用,整个过程存在系统调用,也无法避免进行内存的拷贝;内存拷贝的负面影响主要是内存的申请和释放以及拷贝过程带来额外开销和时延。具体地,应用向系统申请内存时,可以通过调用一个管理了一定内存的通用函数接口获得,再将数据拷贝到该获得的内存中。之后该获得的内存中的数据再通过内核发送出去。
然而,传统方法中,该通用函数接口管理的内存不会很大,因此,往往还需要通过系统调用来获得内存,在内核发送数据的过程中,也需要系统调用。由于通用函数接口管理的内存较小,申请内存的次数发生较频繁,相应的内核发送数据的过程也较频繁。频繁的申请内存和内核发送数据,导致系统调用相应的较为频繁,从而给系统带了了额外的开销和时延,在一定程度上降低了进程的执行效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在一定程度上提高进程执行效率的共享内存管理方法、装置、计算机设备和存储介质。
一种共享内存管理方法,所述方法包括:
通过应用调用操作系统的第一接口申请内存,从构建好的共享内存池中获得指定大小的内存块,其中,所述内存块用于构造应用消息,所述内存块不低于一次业务处理需求的内存;
将所述内存块的地址发送给网卡,使网卡通过直接存储器访问接口根据所述地址直接读取所述内存块,将所述内存块上的应用消息发送给数据接收方;其中,所述共享内存池已向所述网卡注册,使所述网卡具有所述共享内存池的读权限。
在其中一个实施例中,将所述内存块上的应用消息发送给数据接收方,所述方法还包括:
将所述内存块在共享内存池中的偏移地址转发给消息落地子进程进行落地,使所述内存块在本地备份。
在其中一个实施例中,将所述内存块在共享内存池中的偏移地址转发给消息落地子进程进行落地,包括:
获取所述内存块映射到消息落地子进程的虚拟地址;
获取所述应用调用操作系统的发送接口发送的所述内存块在共享内存池中的偏移地址;
根据所述虚拟地址和所述偏移地址,使所述消息落地子进程得到所述内存块的内存地址;
根据所述内存地址,所述消息落地子进程落地。
在其中一个实施例中,所述方法还包括:
定义共享内存池的结构体;
通过内存共享函数创建共享内存池;
定义指向共享内存结构体的指针,得到定义指针;
通过文件映射函数将创建的共享内存池映射到所述定义指针,得到构建好的共享内存池。
在其中一个实施例中,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳华锐金融技术股份有限公司,未经深圳华锐金融技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110782884.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种适用于智慧城市特种设备的监管互联平台
- 下一篇:一种高效率的智能数控机床