[发明专利]用于数据流式计算的内存管理系统及其方法有效
申请号: | 201910030534.1 | 申请日: | 2017-05-05 |
公开(公告)号: | CN109460302B | 公开(公告)日: | 2020-01-21 |
发明(设计)人: | 戴文渊;杨强;陈雨强;焦英翔;石光川;涂威威 | 申请(专利权)人: | 第四范式(北京)技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/52;G06F12/02 |
代理公司: | 11286 北京铭硕知识产权代理有限公司 | 代理人: | 曾世骁;于翔 |
地址: | 100085 北京市海淀区上*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据流 内存 内存管理系统 内存回收装置 托管装置 操作系统 托管 内存分配装置 效率问题 回收 独立性 申请 结尾 释放 响应 保留 分配 | ||
1.一种用于数据流式计算的内存管理系统,包括:
内存回收装置,用于从数据流式计算的结尾回收原本应被释放给操作系统的内存;其中,内存回收装置通过回收在数据流式计算的结尾得到的对象来回收内存;
内存托管装置,用于托管由内存回收装置回收的内存;其中,内存托管装置通过设置的容器来容纳对象;以及
内存分配装置,用于响应于来自数据流式计算的开端的申请,向数据流式计算的开端分配由内存托管装置托管的内存;其中,内存分配装置根据待处理数据的数据类型,向数据流式计算的开端分配内存托管装置中的相应类型的对象。
2.如权利要求1所述的内存管理系统,其中,内存分配装置在内存托管装置托管的内存之中不存在适于分配的可用内存时,向数据流式计算的开端分配从操作系统申请到的内存或向数据流式计算的开端发送用于指示其直接向操作系统申请内存的指示信号。
3.如权利要求1所述的内存管理系统,其中,内存托管装置包括一个或多个内存池,其中,每个内存池包含一个或多个由针对相同类型的对象的容器组成的容器队列。
4.如权利要求3所述的内存管理系统,其中,每个容器具有一个互斥锁。
5.如权利要求3所述的内存管理系统,其中,每个内存池包括两个容器队列,其中,所述两个容器队列之中的一个容器队列用于回收对象,并且,所述两个容器队列之中的另一容器队列用于分配对象。
6.如权利要求5所述的内存管理系统,其中,每个容器队列具有一个互斥锁。
7.如权利要求5所述的内存管理系统,其中,当所述另一容器队列分配对象失败时,内存托管装置将所述一个容器队列与所述另一容器队列互相交换。
8.如权利要求1所述的内存管理系统,其中,数据流式计算用于机器学习模型训练,对象对应于机器学习模型的样本。
9.一种用于数据流式计算的内存管理方法,包括:
(A)从数据流式计算的结尾回收原本应被释放给操作系统的内存,其中,通过回收在数据流式计算的结尾得到的对象来回收内存;
(B)托管所回收的内存,其中,通过设置的容器来容纳对象;以及
(C)响应于来自数据流式计算的开端的申请,向数据流式计算的开端分配所托管的内存,其中,根据待处理数据的数据类型,向数据流式计算的开端分配内存托管装置中的相应类型的对象。
10.如权利要求9所述的内存管理方法,还包括:
(D)在托管的内存之中不存在适于分配的可用内存时,向数据流式计算的开端分配从操作系统申请到的内存或向数据流式计算的开端发送用于指示其直接向操作系统申请内存的指示信号。
11.如权利要求9所述的内存管理方法,其中,在步骤(B)中,通过一个或多个内存池来托管所回收的内存,其中,每个内存池包含一个或多个由针对相同类型的对象的容器组成的容器队列。
12.如权利要求11所述的内存管理方法,其中,每个容器具有一个互斥锁。
13.如权利要求11所述的内存管理方法,其中,每个内存池包括两个容器队列,其中,所述两个容器队列之中的一个容器队列用于回收对象,并且,所述两个容器队列之中的另一容器队列用于分配对象。
14.如权利要求13所述的内存管理方法,其中,每个容器队列具有一个互斥锁。
15.如权利要求13所述的内存管理方法,其中,在步骤(C)中,当所述另一容器队列分配对象失败时,将所述一个容器队列与所述另一容器队列互相交换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于第四范式(北京)技术有限公司,未经第四范式(北京)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910030534.1/1.html,转载请声明来源钻瓜专利网。