CN114153614A - 内存管理方法、装置、电子设备和自动驾驶车辆 - Google Patents

内存管理方法、装置、电子设备和自动驾驶车辆 Download PDF

Info

Publication number
CN114153614A
CN114153614A CN202111490508.0A CN202111490508A CN114153614A CN 114153614 A CN114153614 A CN 114153614A CN 202111490508 A CN202111490508 A CN 202111490508A CN 114153614 A CN114153614 A CN 114153614A
Authority
CN
China
Prior art keywords
cache
queue
space
target
historical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111490508.0A
Other languages
English (en)
Inventor
陈杰
董雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apollo Intelligent Technology Beijing Co Ltd
Original Assignee
Apollo Intelligent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apollo Intelligent Technology Beijing Co Ltd filed Critical Apollo Intelligent Technology Beijing Co Ltd
Priority to CN202111490508.0A priority Critical patent/CN114153614A/zh
Publication of CN114153614A publication Critical patent/CN114153614A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开提供了一种内存管理方法、装置和电子设备,涉及自动驾驶和数据存储领域。具体实现方案为:内存管理方法,包括:监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。本公开可以提高数据缓存的效果,例如在自动驾驶任务处理中产生优化效果。

Description

内存管理方法、装置、电子设备和自动驾驶车辆
技术领域
本公开涉及自动驾驶和数据存储领域,具体涉及一种内存管理方法、装置、电子设备和自动驾驶车辆。
背景技术
现有技术中,计算机程序在计算机设备上运行时,会在设备上产生一条对应的进程,所述进程内可能存在多个数据处理任务,且所述进程基于所述数据处理任务对程序外部或程序内部所产生的数据进行处理,例如,所述进程可以基于所述数据处理任务对所产生的数据进行过滤、执行、存储、转发等处理。由于数据处理任务在工作过程中,可能并发多个需要进行处理的数据,特别是自动驾驶领域,并发任务处理尤为重要,对安全性要求更高。因此,现有技术中,可以在存储空间中分配与计算机程序对应的数据缓存队列,以缓存待计算机程序处理的数据,当数据缓存队列被写满时,新产生的数据将被数据缓存队列丢弃。
发明内容
本公开提供了一种内存管理方法、装置、电子设备和自动驾驶车辆。
根据本公开的第一方面,提供了一种内存管理方法,包括:
监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;
在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。
根据本公开的第二方面,提供了一种内存管理装置,包括:
监控模块,用于监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;
调整模块,用于在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据第一方面中所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面中所述的方法。
根据本公开的第六方面,提供了一种自动驾驶车辆,包括上述第三方面所述的电子设备。
本公开实施例中,通过在第一缓存队列的队列状态满足预设条件,且堆内存中的闲置空间大于第一阈值的情况下,增大缓存队列的缓存空间,这样,可以在第一缓存队列被写满的情况下,确保新产生的数据能够正常被存储,从而提高了数据缓存的效果。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种内存管理方法的流程图;
图2是本公开实施例中堆内存的内部缓存队列的示意图之一;
图3是本公开实施例中堆内存的内部缓存队列的示意图之二;
图4是本公开实施例中堆内存的内部缓存队列的示意图之三;
图5是本公开实施例中堆内存的内部缓存队列的示意图之四;
图6是本公开实施例提供的一种内存管理装置的结构示意图之一;
图7是本公开实施例提供的一种内存管理装置的结构示意图之二;
图8是本公开实施例提供用于实现内存管理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开提供了一种内存管理方法。
请参见图1,图1是本公开一实施例提供的一种内存管理方法的流程图。如图1所示,所述方法包括以下步骤:
步骤S101、监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;
步骤S102、在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。
其中,所述内存管理方法可以应用于服务器,也可以应用于除服务器之外的其他具有数据处理功能的电子设备或计算机设备,如:自动驾驶车辆、手机、平板电脑、笔记本计算机、台式计算机等。下文以所述内存管理方法应用于服务器为例,对所述内存管理方法作进一步的解释说明。
具体地,可以基于预先部署于服务器的监控程序监控堆内存的闲置空间。例如,可以预先编写所述监控程序,并将所述监控程序与目标进程进行绑定。具体地,由于所述监控程序并不是一个独立的进程,因此,可以采用动态链接库(.so库文件)方式将监控程序与所述目标进程进行绑定。其中,所述监控程序生成二进制.so库文件,目标进程运行前配置LD_PREUPLOAD变量指定监控.so库文件的加载,实现与目标进程的绑定。
可以理解的是,所述堆内存用于为所述目标进程提供数据缓存空间,所述闲置空间信息可以包括所述堆内存的实时闲置空间的大小。所述目标进程可以是服务器中当前运行的任意程序的进程,所述目标任务可以是指所述进程中的任意线程,且所述目标进程基于所述目标任务消费所述第一缓存队列中所存储的数据。例如,所述目标任务可以是所述目标进程中的数据转发线程、数据存储线程等。所述堆内存除了可以为所述目标任务提供数据缓存空间之外,还可以同时为所述目标进程中的其他任务提供数据缓存空间。例如,请参见图2,在本公开一个实施例中,所述目标进程包括N个线程,即所述目标进程中包括N个任务,所述堆内存同时为所述N个任务提供数据缓存空间,所述N为大于等于2的整数,即所述堆内存中可以同时分配N个缓存队列,且一个缓存队列对应一个任务,所述缓存队列用于为所述缓存队列对应的任务提供数据缓存空间。
上述预设条件可以是指各种能够表征所述第一缓存队列中的缓存不足的条件,也可以是接收到用户的相关指令的条件,例如,所述预设条件可以是所述第一缓存队列被写满,或者,所述第一缓存队列的数据写入速度明显大于所述第一缓存队列的数据读取数据,此外,所述预设条件还可以是接收到用户的扩容指令的条件。
上述堆内存可以是相关人员预先配置的用于为特定进程提供数据缓存空间的内存空间,且所述堆内存的存储空间的大小为固定值。目前,相关技术中在将堆内存投入使用之前,通常是由相关人员对进程中每个任务所能够在堆内存中申请的缓存空间的上限进行设置。具体而言,任务在运行时,可以从所述堆内存中申请不同大小的缓存空间,但其所申请的缓存空间需要小于等于其所能够申请的缓存空间的上限。相应地,当任务结束运行时,其所申请的缓存空间将进行释放至所述堆内存。
然而,当某一任务的数据量暴增,且该任务对应的缓存队列的缓存空间已到达上限时,由于缓存队列的存储空间不足,将选择丢弃新产生的数据,进而导致数据丢失的问题。但事实上,当某个缓存队列被写满时,共用所述堆内存的其他任务可能申请的缓存空间较小,此时,所述堆内存的闲置缓存空间可能占比较大,例如,请参见图3,当任务3对应的缓存队列被写满时,其他n-1个缓存队列所申请的缓存空间均较少,此时,所述堆内存中的闲置缓存空间较大,从而导致堆内存的使用率不高的情况下,无法满足特定任务的正常的数据缓存需求的问题。
基于此,本公开实施例,通过实时监控所述堆内存的闲置空间信息,并在所述第一缓存队列满足预设条件,且所述堆内存的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。这样,当某个缓存队列被写满时,若堆内存的闲置缓存空间较多,此时,可以增大所述被写满的缓存队列的缓存空间,以确保数据正常缓存,避免数据丢失的问题。
其中,所述第一阈值可以由相关人员自定义,例如,可以默认所述第一阈值的初始值为所述堆内存的总缓存空间大小的80%,且相关人员可以根据实际需要修改所述第一阈值的初始值。
上述监控程序可以实时监控所述堆内存的闲置空间信息,这样,在目标任务对应的缓存队列被写满时,可以直接从所述监控程序处获取所述堆内存的闲置空间信息,并在堆内存的闲置空间大于第一阈值的情况下,及时增大目标任务的缓存空间。
可以理解的是,当所述堆内存同时为N个任务提供缓存空间时,所述目标任务可以是所述N个任务中的任意任务。即当所述N个任务中的任意任务对应的缓存队列满足上述预设条件,且堆内存的闲置空间大于所述第一阈值时,可以增大所述任务所对应的缓存队列的缓存空间。此外,当存在两个以上的任务对应的缓存队列同时满足所述预设条件,且堆内存的闲置空间大于所述第一阈值时,可以同时增大该满足所述预设条件的全部任务对应的缓存队列的缓存空间。
该实施方式中,通过在第一缓存队列的队列状态满足预设条件,且堆内存中的闲置空间大于第一阈值的情况下,增大缓存队列的缓存空间,这样,可以在第一缓存队列被写满的情况下,确保新产生的数据能够正常被存储,从而提高了数据缓存的效果。
需要说明的是,由于在自动驾驶领域,自动驾驶车辆中的计算机设备对并发任务的处理效果直接关系到自动驾驶的安全性,因此,通过将本公开实施例提供的内存管理方法应用于自动驾驶车辆中的计算机设备,有利于提高自动驾驶车辆中的计算机设备对并发任务的处理效果,进而有利于提高自动驾驶的安全性。
可选地,所述监控堆内存的闲置空间信息,包括:
监控所述堆内存的内存申请信息和内存释放信息;
根据所述内存申请信息、所述内存释放信息和所述堆内存的容量,计算得到所述闲置空间信息。
其中,所述内存申请信息可以是指任意一个任务从所述堆内存中申请缓存空间所生成的信息。相应地,所述内存释放信息可以是指任意一个任务的缓存队列释放至所述堆内存所生成的信息。即每次任务向所述堆内存申请或释放内存时,均可以对应生成一条所述内存申请信息或内存释放信息。
具体而言,所述监控程序可以记录所述堆内存的总容量,并且在每次获取到所述内存申请信息时,将所述总容量减去所述内存申请信息所对应的缓存空间的大小,从而得到所述堆内存的闲置空间信息。相应地,当获取到所述内存释放信息时,可以将上一次计算得到的剩余的缓存空间的大小加上所述内存释放信息所对应的缓存空间的大小,即可计算出当前的闲置空间信息。从而实现对堆内存的闲置空间信息进行实时监控。
该实施方式中,通过监控所述堆内存的内存申请信息和内存释放信息,并根据所述内存申请信息、所述内存释放信息和所述堆内存的容量,计算得到所述闲置空间信息,从而实现对所述堆内存的闲置空间信息进行实时监控。
可选地,所述预设条件包括:所述第一缓存队列的剩余缓存空间小于或等于第二阈值,且所述第一缓存队列的数据写入速度大于所述第一缓存队列的数据读取速度。
其中,所述第二阈值可以大于等于0,当所述第二阈值为0时,即所述预设条件可以包括所述第一缓存队列的剩余缓存空间等于0,也即所述第一缓存队列被写满的情况。此外,也可以使所述第二阈值大于0,例如,所述第二阈值可以为所述第一缓存队列的缓存空间总量的5%,即所述预设条件可以包括所述第一缓存队列的剩余缓存空间小于等于5%的情况。这样,可以确保在所述第一缓存队列被写满之前,提前增大所述目标任务对应的缓存空间,从而确保在所述第一缓存队列被写满时,将新增的数据存储至增大的缓存空间内,以进一步提高数据缓存的效果。
相应地,当所述第一缓存队列的剩余缓存空间大于所述第二阈值时,可以视为所述第一缓存队列的缓存空间充足。因此,在此情况下,可以不增大所述目标任务的缓存空间。
具体地,由于第一缓存队列用于暂存待所述目标任务处理的数据,因此,新生产的数据可以写入所述第一缓存队列。相应地,所述目标任务可以持续消费所述第一缓存队列中数据,即所述目标任务可以持续从所述第一缓存队列中读取数据,以对数据进行处理。该过程中,可以按照原子位置变量对所述第一缓存队列中的数据进行读写。
当所述第一缓存队列的数据写入速度大于所述第一缓存队列的数据读取速度时,所述第一缓存队列中的数据保有量将持续增加,此时,若所述第一缓存队列的剩余缓存空间小于或等于第二阈值,则所述第一缓存队列可能无法满足后续新增的数据的缓存需求,因此,可以提前增大所述目标程序对应的缓存空间,以确保在此情况下,能够正常对数据进行存储。
相应地,当所述第一缓存队列的数据写入速度小于或等于所述第一缓存队列的数据读取速度时,所述第一缓存队列中保有的数据量将逐渐减小或者保持不变,此时,即便所述第一缓存队列的剩余缓存空间等于0,也可以确保所述第一缓存队列能够满足目标任务正常的数据缓存需求,因此,在此情况下,可以不增大所述目标任务的缓存空间。
该实施方式中,在判断所述第一缓存队列是否能够满足目标任务的数据缓存需求时,通过同时考虑所述第一缓存队列的剩余缓存空间的大小,以及,所述第一缓存队列的数据写入速度与所述第一缓存队列的数据读取速度相对大小两个维度的因素,相对于仅考虑剩余容量这一单一因素进行判断而言,可以提高判断的准确性。
可选地,所述目标任务在运行过程中除了可以从所述堆内存申请内存之外,还可以将自身的其中部分内存释放回所述堆内存。例如,当所述第一缓存队列的剩余缓存空间大于第四阈值时,释放所述第一缓存队列中的部分内存。或者,在所述第一缓存队列的数据写入速度小于所述第一缓存队列的数据缓存速度,且所述第一缓存队列的剩余缓存空间大于第五阈值时,释放所述第一缓存队列中的部分内存。其中,所述第四阈值、所述第五阈值和所述部分内存,可以由用户自定义,例如,所述第四阈值可以是所述第一缓存队列的缓存空间的50%,所述第五阈值可以是所述第一缓存队列的缓存空间的20%。所述部分内存可以是所述第一缓存队列的缓存空间的10%。
此外,还可以在用户端显示显示各个任务当前的内存占用情况,以及,内存申请释放情况,以便于相关人员基于所述内存占用情况和内存申请释放情况查找对应的问题。此外,还可以将各个任务的内存申请释放情况保存至服务器本地,以便于后续相关人员查看内存申请释放情况的历史信息,并基于所述内存申请释放情况的历史信息对缓存队列进行优化。
可选地,所述在所述堆内存中增大所述目标任务对应的缓存空间,包括:
在所述堆内存的闲置空间中分配与所述目标任务对应的第二缓存队列,所述第二缓存队列用于在所述第一缓存队列写满的情况下,为所述目标任务提供数据缓存空间;或者,
在所述堆内存的闲置空间中分配与所述目标任务对应的第三缓存队列;将所述第一缓存队列中的数据转移至所述第三缓存队列,并释放所述第一缓存队列的缓存空间,其中,所述第三缓存队列的空间大小大于所述第一缓存队列的空间大小。
具体地,当需要增大所述目标任务对应的缓存空间时,可以在所述堆内存中重新分配一个第二缓存队列为所述目标任务提供数据缓存空间,这样,在所述第一缓存队列被写满的情况下,可以将新增的数据写入所述第二缓存队列,从而避免在第一缓存队列被写满时将新增的数据丢弃的问题。例如,请参见图4,当任务3的第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在堆内存中分配与任务3对应的第二缓存队列。
需要说明的是,本公开提供的方法主要适用于在堆内存的总闲置空间较大的情况下,增大部分数据量暴增的任务的缓存空间,当堆内存的总闲置空间不足的情况下,即便所述N个任务的第一缓存队列均满足所述预设条件,也无法对任意一个任务对应的缓存空间进行增大,例如,请参见图5,当N个任务对应的第一缓存队列均被写满,且堆内存的总闲置空间为0时,由于堆内存中不存在剩余内存,因此,无法对任意一个任务对应的缓存空间进行增大。这种情况下,需要对进程整体架构重新设计。
此外,在本公开另一实施例中,当需要增大所述目标任务对应的缓存空间时,还可以在所述堆内存中重新分配一个第三缓存队列,其中,所述第三缓存队列的缓存空间大于所述第一缓存队列的缓存空间,然后,可以将所述第一缓存队列中缓存的数据转移至所述第三缓存队列,并释放所述第一缓存队列所对应的缓存空间,后续由所述第三缓存队列为所述目标任务提供数据缓存服务,从而完成对所述目标任务对应的缓存空间的增大过程。
该实施方式中,通过采用增加与目标任务对应的缓存队列的数量方式,或者,更换与目标任务对应的缓存队列的方式,以实现增大所述目标任务对应的缓存空间的过程。
在所述目标任务启动的过程中,所述目标任务可以在所述堆内存中申请所述第一缓存队列。由于所申请的第一缓存队列的缓存空间过小时,将可能导致需要频繁调整所述目标任务对应的缓存空间的问题。相应地,当所述第一缓存队列的缓存空间过大时,则将导致在目标任务运行过程中,第一缓存队列中的空数据位置占用过多,进而导致内存资源浪费以及增大内存捕获异常的概率等问题。基于此,本公开实施例中,可以基于历史缓存空间信息确定所述第一缓存队列的缓存空间大小的初始值。具体确定过程如下:
可选地,所述监控堆内存的闲置空间信息之前,所述方法还包括:
在所述目标任务启动的过程中,获取所述目标任务对应的历史缓存空间信息,所述历史缓存空间信息包括所述目标任务在目标时间段内,所占用的缓存空间的大小的变化信息;
基于所述历史缓存空间信息,确定所述第一缓存队列的缓存空间大小的初始值;
基于所述初始值,在所述堆内存中分配所述第一缓存队列。
其中,所述历史缓存空间信息可以包括:在所述目标任务,在不同历史时间点,在运行时所占用的缓存空间的大小。
具体地,可以在服务器中预先配置一个统计程序,以统计各个任务的历史缓存空间信息。例如,在每次任务在向所述堆内存申请内存时,可以将所述任务的编号、申请之后任务所占用的缓存空间的大小以及申请时的时间戳传递至所述统计程序,相应地,在所述任务释放所占用的内存空间时,也可以将任务编号、释放时的时间戳传递至所述统计程序。例如,统计程序可以统计出每个任务所占用的缓存空间大小与时间之间的二维关系。如此,可以基于所述二维关系对所述第一缓存队列的缓存空间大小的初始值进行优选,从而提高所分配的第一缓存队列的合理性。
该实施方式中,通过基于所述目标任务对应的历史缓存空间信息,对所述第一缓存队列的缓存空间大小的初始值进行优选,例如,可取目标任务在一定时间段内的平均占用的缓存空间的大小作为所述初始值。或者,也可以取目标任务在一定时间段内占用缓存空间的大小的中位数作为所述初始值。当然,也可以基于其他算法根据所述历史缓存空间信息计算得到所述初始值,从而可以提高所分配的第一缓存队列的合理性。
可选地,所述历史缓存空间信息包括至少一个历史缓存值和至少一个子时间段,其中,一个所述历史缓存值对应一个所述子时间段,所述历史缓存值用于表征:所述历史缓存值所对应的所述子时间段内,所述目标任务所占用的缓存空间的大小,所述至少一个子时间段的时长之和等于所述目标时间段的时长;
所述基于所述历史缓存空间信息,确定所述第一缓存队列的缓存空间大小的初始值,包括如下至少一项:
在所述历史缓存空间信息包括一个所述历史缓存值的情况下,将所述历史缓存值确定为所述初始值;
在所述历史缓存空间信息包括至少两个所述历史缓存值的情况下,基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,确定所述初始值。
其中,所述目标时间段可以是所述目标任务的任意一个历史运行周期所对应的时间段,具体地,所述历史运行周期可以是指:所述目标任务的任意一个连续运行的时间段,即所述目标任务从某一次启动的时间点开始计算至该次运行的结束时间点之间所形成的时间段。
由于在所述目标时间段所对应的运行周期内,所述目标任务启动过程中,目标任务会从所述堆内存中申请一个与目标任务对应的第一缓存队列,此时,可以将目标任务首次申请的第一缓存队列的缓存空间大小作为第一个历史缓存值。而在所述目标任务运行过程中,可能需要调整所述目标任务对应的缓存空间,因此,当目标任务申请调整所对应的缓存空间时,可以将调整后的缓存空间的大小作为第二个历史缓存值,并记录从所述目标任务启动至所述目标任务首次申请调整缓存空间的大小之间的时间段确定为与第一历史缓存值对应的子时间段。如此,通过记录目标任务每次调整之后的缓存空间的大小即可得到所述至少一个历史缓存值,相应地,通过记录相邻两次调整缓存空间的时间点,即可确定每个历史缓存值对应的子时间段。
可以理解的是,若所述目标任务在所述目标时间段内未申请调整所述缓存空间的大小,则所述历史缓存空间信息包括一个历史缓存值,且该历史缓存值对应的子时间段为所述目标时间段。若所述目标任务在所述目标时间段内申请并调整了所述缓存空间的大小,则所述目标时间段内的最后一个历史缓存值所对应的子时间段为:最后一次调整缓存空间的时间点至目标任务结束运行的时间点之间所形成的时间段。
在本公开一个实施例中,当所述历史缓存空间信息包括K个历史缓存值时,可以基于如下公式计算所述初始值:
Figure BDA0003399129810000111
T=T1+T2+…+Ti+…+Tk
其中,所述K为大于等于2的整数,所述S表示初始值,所述Li表示第i个历史缓存值,所述Ti为第i个历史缓存值对应的子时间段,所述T为所述目标时间段的时长。
该实施方式中,当在所述历史缓存空间信息包括一个所述历史缓存值,即在目标时间段内,所述目标任务的缓存空间大小为所述历史缓存值时,所述目标任务可以稳定运行,此时,可以直接将所述历史缓存值作为所述初始值,以确保目标任务稳定运行。相应地,当所述历史缓存空间信息包括至少两个所述历史缓存值时,通过基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,计算得到所述初始值,从而确保所计算得到的初始值为一个较优值,进而提高目标任务运行的稳定性。
可选地,所述基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,确定所述初始值,包括:
在所述至少两个所述历史缓存值中确定目标缓存值,所述目标缓存值为所述至少两个所述历史缓存值中,对应的子时间段的时长超过第三阈值的历史缓存值;
基于所述目标缓存值和所述目标缓存值对应的子时间段的时长,确定所述初始值。
具体地,由于在所述目标任务在运行过程中,可能由于某些特定的原因,导致在某一时刻数据量暴增,而在其他时刻的数据量均相对较为平缓,如此,将导致数据量暴增的子时间段较短,且数据量暴增的子时间段所对应的历史缓存值相当大。进而导致基于历史缓存值计算得到的初始值可能偏大。基于此,在计算所述初始值时,可以剔除所述至少两个历史缓存值中,对应的子时间段的时长不超过第三阈值的历史缓存值,剔除之后剩余的历史缓存值确定为目标缓存值,然后,基于目标缓存值和所述目标缓存值对应的子时间段的时长,确定所述初始值。
其中,所述第三阈值可以为一个较小的时间阈值,其具体取值可以根据实际情况进行选取,例如,所述第三阈值可以为5毫秒、1秒、5秒等。
具体地,在本公开一个实施例中,当所述历史缓存空间信息包括K个历史缓存值时,且所述K个历史缓存值中包括m个目标缓存值时,所述方法还包括:
在所述m等于1的情况下,即仅包括一个目标缓存值的情况下,将所述目标缓存值确定为所述初始值;
在所述m大于1的情况下,可以基于如下公式计算所述初始值:
Figure BDA0003399129810000121
T=T1+T2+…+Ti+…+Tk
其中,所述K为大于等于2的整数,所述m小于等于所述K,且所述m为大于1的整数,所述S表示初始值,所述Ti为第i个历史缓存值对应的子时间段,所述Li'表示第i个目标缓存值,所述Ti'为第i个目标缓存值对应的子时间段,所述T为所述目标时间段的时长。
该实施方式中,当在所述历史缓存空间信息包括一个所述目标缓存值,即在目标时间段内,在提出异常值之后,所述目标任务的缓存空间大小为所述目标缓存值时,所述目标任务可以稳定运行,此时,可以直接将所述目标缓存值作为所述初始值,以确保目标任务稳定运行。相应地,当所述历史缓存空间信息包括至少两个所述目标缓存值时,通过基于所述至少两个所述目标缓存值和每个所述目标缓存值对应的子时间段的时长,计算得到所述初始值,从而确保所计算得到的初始值为一个较优值,进而提高目标任务运行的稳定性。
可选地,所述目标时间段为所述目标任务上一次启动的启动时间点与结束时间点之间形成的时间段。即所述目标时间段为所述目标任务的上一运行周期。
具体地,可以在目标任务每次启动时,将目标任务上一次启动的启动时间点与结束时间点之间形成的时间段确定为目标时间段,并基于所述目标时间段内的历史缓存空间信息计算得到所述初始值。
该实施方式中,通过获取与目标任务启动是最接近的历史缓存空间信息,并基于所获取得到的历史缓存空间信息计算所述初始值,从而可以提高计算得到的初始值合理性。
由于当所述目标时间段为所述目标任务的上一运行周期时,若上一运行周期的运行时长较短,则可能导致计算得到的初始值的不合理,基于此,在本公开另一实施例中,所述目标时间段还可以是:所述目标任务的历史运行周期中,距离当前时间点最近,且运行周期的长度超过预设时长的运行周期。其中,所述预设时长可以由用户自行定义,例如,可以是5分钟、10分钟等相对较长的时长。
请参见图6,为本公开实施例提供的一种内存管理装置600的结构示意图,所述内存管理装置600包括:
监控模块601,用于监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;
调整模块602,用于在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。
可选地,所述监控模块601,包括:
监控子模块,用于监控所述堆内存的内存申请信息和内存释放信息;
计算子模块,用于根据所述内存申请信息、所述内存释放信息和所述堆内存的容量,计算得到所述闲置空间信息。
可选地,所述预设条件包括:所述第一缓存队列的剩余缓存空间小于或等于第二阈值,且所述第一缓存队列的数据写入速度大于所述第一缓存队列的数据读取速度。
可选地,所述调整模块602,还用于在所述堆内存的闲置空间中分配与所述目标任务对应的第二缓存队列,所述第二缓存队列用于在所述第一缓存队列写满的情况下,为所述目标任务提供数据缓存空间;或者,
所述调整模块602,还用于在所述堆内存的闲置空间中分配与所述目标任务对应的第三缓存队列;将所述第一缓存队列中的数据转移至所述第三缓存队列,并释放所述第一缓存队列的缓存空间,其中,所述第三缓存队列的空间大小大于所述第一缓存队列的空间大小。
可选地,请参见图7,所述装置还包括:
获取模块603,用于在所述目标任务启动的过程中,获取所述目标任务对应的历史缓存空间信息,所述历史缓存空间信息包括所述目标任务在目标时间段内,所占用的缓存空间的大小的变化信息;
确定模块604,用于基于所述历史缓存空间信息,确定所述第一缓存队列的缓存空间大小的初始值;
分配模块605,用于基于所述初始值,在所述堆内存中分配所述第一缓存队列。
可选地,所述历史缓存空间信息包括至少一个历史缓存值和至少一个子时间段,其中,一个所述历史缓存值对应一个所述子时间段,所述历史缓存值用于表征:所述历史缓存值所对应的所述子时间段内,所述目标任务所占用的缓存空间的大小,所述至少一个子时间段的时长之和等于所述目标时间段的时长;
所述确定模块604,还用于在所述历史缓存空间信息包括一个所述历史缓存值的情况下,将所述历史缓存值确定为所述初始值;
所述确定模块604,还用于在所述历史缓存空间信息包括至少两个所述历史缓存值的情况下,基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,确定所述初始值。
可选地,所述确定模块604,包括:
第一确定子模块,用于在所述至少两个所述历史缓存值中确定目标缓存值,所述目标缓存值为所述至少两个所述历史缓存值中,对应的子时间段的时长超过第三阈值的历史缓存值;
第二确定子模块,用于基于所述目标缓存值和所述目标缓存值对应的子时间段的时长,确定所述初始值。
可选地,所述目标时间段为所述目标任务上一次启动的启动时间点与结束时间点之间形成的时间段。
需要说明地,本实施例提供的内存管理装置600能够实现上述内存管理方法实施例的全部技术方案,因此至少能够实现上述全部技术效果,此处不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如内存管理方法。例如,在一些实施例中,内存管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,执行上文描述的内存管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行内存管理方法。
根据本公开的实施例,本公开还提供了一种自动驾驶车辆,包括上述实施例所述的电子设备。
该实施方式中,通过将本公开实施例提供的内存管理方法应用于自动驾驶车辆中的电子设备,有利于提高自动驾驶车辆中的电子设备对并发任务的处理效果,进而有利于提高自动驾驶的安全性。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (20)

1.一种内存管理方法,包括:
监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;
在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。
2.根据权利要求1所述的方法,其中,所述监控堆内存的闲置空间信息,包括:
监控所述堆内存的内存申请信息和内存释放信息;
根据所述内存申请信息、所述内存释放信息和所述堆内存的容量,计算得到所述闲置空间信息。
3.根据权利要求1所述的方法,其中,所述预设条件包括:所述第一缓存队列的剩余缓存空间小于或等于第二阈值,且所述第一缓存队列的数据写入速度大于所述第一缓存队列的数据读取速度。
4.根据权利要求1所述的方法,其中,所述在所述堆内存中增大所述目标任务对应的缓存空间,包括:
在所述堆内存的闲置空间中分配与所述目标任务对应的第二缓存队列,所述第二缓存队列用于在所述第一缓存队列写满的情况下,为所述目标任务提供数据缓存空间;或者,
在所述堆内存的闲置空间中分配与所述目标任务对应的第三缓存队列;将所述第一缓存队列中的数据转移至所述第三缓存队列,并释放所述第一缓存队列的缓存空间,其中,所述第三缓存队列的空间大小大于所述第一缓存队列的空间大小。
5.根据权利要求1所述的方法,其中,所述监控堆内存的闲置空间信息之前,所述方法还包括:
在所述目标任务启动的过程中,获取所述目标任务对应的历史缓存空间信息,所述历史缓存空间信息包括所述目标任务在目标时间段内,所占用的缓存空间的大小的变化信息;
基于所述历史缓存空间信息,确定所述第一缓存队列的缓存空间大小的初始值;
基于所述初始值,在所述堆内存中分配所述第一缓存队列。
6.根据权利要求5所述的方法,其中,所述历史缓存空间信息包括至少一个历史缓存值和至少一个子时间段,其中,一个所述历史缓存值对应一个所述子时间段,所述历史缓存值用于表征:所述历史缓存值所对应的所述子时间段内,所述目标任务所占用的缓存空间的大小,所述至少一个子时间段的时长之和等于所述目标时间段的时长;
所述基于所述历史缓存空间信息,确定所述第一缓存队列的缓存空间大小的初始值,包括如下至少一项:
在所述历史缓存空间信息包括一个所述历史缓存值的情况下,将所述历史缓存值确定为所述初始值;
在所述历史缓存空间信息包括至少两个所述历史缓存值的情况下,基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,确定所述初始值。
7.根据权利要求6所述的方法,其中,所述基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,确定所述初始值,包括:
在所述至少两个所述历史缓存值中确定目标缓存值,所述目标缓存值为所述至少两个所述历史缓存值中,对应的子时间段的时长超过第三阈值的历史缓存值;
基于所述目标缓存值和所述目标缓存值对应的子时间段的时长,确定所述初始值。
8.根据权利要求5所述的方法,其中,所述目标时间段为所述目标任务上一次启动的启动时间点与结束时间点之间形成的时间段。
9.一种内存管理装置,包括:
监控模块,用于监控堆内存的闲置空间信息,其中,所述堆内存中预先分配有第一缓存队列,所述第一缓存队列用于为目标进程中的目标任务提供数据缓存空间;
调整模块,用于在所述第一缓存队列的队列状态满足预设条件,且所述闲置空间信息表征所述堆内存中的闲置空间大于第一阈值的情况下,在所述堆内存中增大所述目标任务对应的缓存空间。
10.根据权利要求9所述的装置,其中,所述监控模块,包括:
监控子模块,用于监控所述堆内存的内存申请信息和内存释放信息;
计算子模块,用于根据所述内存申请信息、所述内存释放信息和所述堆内存的容量,计算得到所述闲置空间信息。
11.根据权利要求9所述的装置,其中,所述预设条件包括:所述第一缓存队列的剩余缓存空间小于或等于第二阈值,且所述第一缓存队列的数据写入速度大于所述第一缓存队列的数据读取速度。
12.根据权利要求9所述的装置,其中,所述调整模块,还用于在所述堆内存的闲置空间中分配与所述目标任务对应的第二缓存队列,所述第二缓存队列用于在所述第一缓存队列写满的情况下,为所述目标任务提供数据缓存空间;或者,
所述调整模块,还用于在所述堆内存的闲置空间中分配与所述目标任务对应的第三缓存队列;将所述第一缓存队列中的数据转移至所述第三缓存队列,并释放所述第一缓存队列的缓存空间,其中,所述第三缓存队列的空间大小大于所述第一缓存队列的空间大小。
13.根据权利要求9所述的装置,其中,所述装置还包括:
获取模块,用于在所述目标任务启动的过程中,获取所述目标任务对应的历史缓存空间信息,所述历史缓存空间信息包括所述目标任务在目标时间段内,所占用的缓存空间的大小的变化信息;
确定模块,用于基于所述历史缓存空间信息,确定所述第一缓存队列的缓存空间大小的初始值;
分配模块,用于基于所述初始值,在所述堆内存中分配所述第一缓存队列。
14.根据权利要求13所述的装置,其中,所述历史缓存空间信息包括至少一个历史缓存值和至少一个子时间段,其中,一个所述历史缓存值对应一个所述子时间段,所述历史缓存值用于表征:所述历史缓存值所对应的所述子时间段内,所述目标任务所占用的缓存空间的大小,所述至少一个子时间段的时长之和等于所述目标时间段的时长;
所述确定模块,还用于在所述历史缓存空间信息包括一个所述历史缓存值的情况下,将所述历史缓存值确定为所述初始值;
所述确定模块,还用于在所述历史缓存空间信息包括至少两个所述历史缓存值的情况下,基于所述至少两个所述历史缓存值和每个所述历史缓存值对应的子时间段的时长,确定所述初始值。
15.根据权利要求14所述的装置,其中,所述确定模块,包括:
第一确定子模块,用于在所述至少两个所述历史缓存值中确定目标缓存值,所述目标缓存值为所述至少两个所述历史缓存值中,对应的子时间段的时长超过第三阈值的历史缓存值;
第二确定子模块,用于基于所述目标缓存值和所述目标缓存值对应的子时间段的时长,确定所述初始值。
16.根据权利要求13所述的装置,其中,所述目标时间段为所述目标任务上一次启动的启动时间点与结束时间点之间形成的时间段。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
20.一种自动驾驶车辆,包括如权利要求17所述的电子设备。
CN202111490508.0A 2021-12-08 2021-12-08 内存管理方法、装置、电子设备和自动驾驶车辆 Pending CN114153614A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111490508.0A CN114153614A (zh) 2021-12-08 2021-12-08 内存管理方法、装置、电子设备和自动驾驶车辆

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111490508.0A CN114153614A (zh) 2021-12-08 2021-12-08 内存管理方法、装置、电子设备和自动驾驶车辆

Publications (1)

Publication Number Publication Date
CN114153614A true CN114153614A (zh) 2022-03-08

Family

ID=80453665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111490508.0A Pending CN114153614A (zh) 2021-12-08 2021-12-08 内存管理方法、装置、电子设备和自动驾驶车辆

Country Status (1)

Country Link
CN (1) CN114153614A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116139498A (zh) * 2023-04-18 2023-05-23 深圳市益玩网络科技有限公司 基于内存管理的对象创建方法、装置、设备及存储介质
WO2024087875A1 (zh) * 2022-10-26 2024-05-02 北京火山引擎科技有限公司 内存管理方法、装置、介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024087875A1 (zh) * 2022-10-26 2024-05-02 北京火山引擎科技有限公司 内存管理方法、装置、介质及电子设备
CN116139498A (zh) * 2023-04-18 2023-05-23 深圳市益玩网络科技有限公司 基于内存管理的对象创建方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN112559182B (zh) 资源分配方法、装置、设备及存储介质
US10255114B2 (en) Abnormality detection apparatus, control method, and program
CN114153614A (zh) 内存管理方法、装置、电子设备和自动驾驶车辆
CN112508768B (zh) 单算子多模型流水线推理方法、系统、电子设备及介质
CN110795238B (zh) 负载计算方法、装置、存储介质及电子设备
EP4113299A2 (en) Task processing method and device, and electronic device
US11640319B1 (en) Task processing method and apparatus, electronic device and storage medium
CN112905314A (zh) 异步处理方法、装置、电子设备、存储介质、及路侧设备
CN113986497B (zh) 基于多租户技术的队列调度方法、装置及系统
CN114968567A (zh) 用于分配计算节点的计算资源的方法、装置和介质
CN112887407B (zh) 用于分布式集群的作业流量控制方法和装置
CN108595251B (zh) 动态图更新方法、装置、存储引擎接口和程序介质
CN116303132A (zh) 一种数据缓存方法、装置、设备以及存储介质
CN115438007A (zh) 一种文件合并方法、装置、电子设备及介质
CN114564149A (zh) 一种数据存储方法、装置、设备及存储介质
CN113971082A (zh) 任务调度方法、装置、设备、介质及产品
CN113971083A (zh) 任务调度方法、装置、设备、介质及产品
CN113392984B (zh) 用于训练模型的方法、装置、设备、介质和产品
CN114579305B (zh) 用于函数计算的资源控制方法、装置、设备和介质
CN113220233A (zh) 数据读取方法、装置及系统
CN116991781B (zh) 一种请求处理装置、方法、芯片、存储介质及电子设备
CN114860405B (zh) 多任务模型的参数更新方法、装置和存储介质
CN118113438A (zh) 调度方法、装置、电子设备和存储介质
CN116069474A (zh) 一种任务调度方法、装置、设备及介质
CN117762583A (zh) 任务调度方法、装置、电子设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination