CN112732435A - 内存动态分配方法、装置、电子设备及可读存储介质 - Google Patents
内存动态分配方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112732435A CN112732435A CN201911037916.3A CN201911037916A CN112732435A CN 112732435 A CN112732435 A CN 112732435A CN 201911037916 A CN201911037916 A CN 201911037916A CN 112732435 A CN112732435 A CN 112732435A
- Authority
- CN
- China
- Prior art keywords
- memory
- value
- system memory
- service
- target
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 509
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000006870 function Effects 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 10
- 238000012423 maintenance Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004793 poor memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种内存动态分配方法、装置、电子设备及可读存储介质,涉及内存分配领域。本申请在检测到电子设备启动时,通过读取环境变量中记录的预设系统内存数值对设备内存进行初始化,并获取实现业务功能时所需的目标业务内存数值,而后根据设备内存的内存总值及该目标业务内存数值计算目标系统内存数值,最后采用该目标系统内存数值对环境变量当前记录的预设系统内存数值进行数值替换,并采用替换后的当前系统内存重新对设备内存进行初始化,从而在不变更当前软件版本的操作系统的情况下,确保分配给业务功能的内存容量满足业务实际需求,降低了系统软件版本的更换频率、开发成本及维护成本,提高了内存分配操作的灵活性及适配性。
Description
技术领域
本申请涉及内存分配领域,具体而言,涉及一种内存动态分配方法、装置、电子设备及可读存储介质。
背景技术
随着科学技术的不断发展,大多数电子设备(例如,嵌入式设备)通过将自身的设备内存划分为用于供操作系统运行的系统内存,及用于执行该电子设备所具有的业务功能的业务内存,使电子设备的操作系统的运行与业务功能的实现互不干扰。就目前而言,业界主流做法是对一个软件版本的操作系统分配一个固定大小的系统内存,使电子设备以设备内存中除去被分配的系统内存外的剩余内存作为业务内存使用。
但随着业务功能的不断开发,电子设备的业务功能逐渐向复杂化及综合化的方向发展,电子设备在实现业务功能时所需的业务内存容量也在逐步增加,极易出现电子设备为当前软件版本的操作系统进行内存分配的分配方案无法满足业务功能实现时的业务内存容量需求的现象,需要通过更换新软件版本的操作系统的方式,确保新软件版本的操作系统所对应的内存分配方案能够满足业务内存容量需求。在此过程中,需要消耗大量资源投入到系统新软件版本的开发过程中,需要较大的系统软件版本维护成本,存在内存分配灵活性及适配性不强的问题。
发明内容
有鉴于此,本申请的目的在于提供一种内存动态分配方法、装置、电子设备及可读存储介质,其能够在当前软件版本的操作系统下根据业务实际需求动态分配电子设备的设备内存,确保分配给业务功能的内存容量满足业务实际需求,无需频繁更换新软件版本的操作系统,降低系统软件版本的开发成本及维护成本,提高内存分配操作的灵活性及适配性。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种内存动态分配方法,应用于电子设备,所述方法包括:
在检测到所述电子设备启动时,读取所述电子设备的环境变量中记录的预设系统内存数值,并按照所述预设系统内存数值对所述电子设备的设备内存进行初始化,使该设备内存的被分配给系统内存的内存容量与所述预设系统内存数值匹配;
获取所述电子设备在实现业务功能时所需的目标业务内存数值;
根据所述设备内存的内存总值及所述目标业务内存数值计算对应的目标系统内存数值,其中所述目标系统内存数值等于所述设备内存的内存总值与所述目标业务内存数值之差;
采用所述目标系统内存数值对所述环境变量中记录的预设系统内存数值进行数值替换,并采用替换后的预设系统内存数值对所述设备内存进行初始化,以完成对被分配给系统内存的内存容量的数值调整。
在可选的实施方式中,所述获取所述电子设备在实现业务功能时所需的目标业务内存数值,包括:
读取所述电子设备的电子标签,得到所述电子标签包括的当前软件产品型号;
在预存的不同软件产品型号各自对应的业务内存数值中,查找与所述当前软件产品型号对应的业务内存数值,并以查找到的业务内存数值作为所述目标业务内存数值。
在可选的实施方式中,所述获取所述电子设备在实现业务功能时所需的目标业务内存数值,包括:
读取所述电子设备的业务配置文件,并对所述业务配置文件进行解析,得到所述业务配置文件包括每个业务在被执行时所需的内存数值;
对解析得到的每个业务在被执行时所需的内存数值进行求和运算,得到所述业务配置文件的内存需求值,并以所述业务配置文件的内存需求值作为所述目标业务内存数值。
在可选的实施方式中,在所述采用所述目标系统内存数值对所述环境变量中记录的预设系统内存数值进行数值替换之前,所述方法还包括:
根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整;
其中,所述根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整,包括:
将所述目标系统内存数值与所述环境变量当前记录的预设系统内存数值进行比较;
若所述目标系统内存数值小于当前记录的所述预设系统内存数值,则判定需要对当前被分配给系统内存的内存容量进行调整,否则判定不需要对当前被分配给系统内存的内存容量进行调整。
在可选的实施方式中,所述方法还包括:
控制所述电子设备按照得到的设备内存初始化结果运行。
第二方面,本申请实施例提供一种内存动态分配装置,应用于电子设备,所述装置包括:
内存初始化模块,用于在检测到所述电子设备启动时,读取所述电子设备的环境变量中记录的预设系统内存数值,并按照所述预设系统内存数值对所述电子设备的设备内存进行初始化,使该设备内存的被分配给系统内存的内存容量与所述预设系统内存数值匹配;
业务内存获取模块,用于获取所述电子设备在实现业务功能时所需的目标业务内存数值;
系统内存计算模块,用于根据所述设备内存的内存总值及所述目标业务内存数值计算对应的目标系统内存数值,其中所述目标系统内存数值等于所述设备内存的内存总值与所述目标业务内存数值之差;
所述内存初始化模块,还用于采用所述目标系统内存数值对所述环境变量中记录的预设系统内存数值进行数值替换,并采用替换后的预设系统内存数值对所述设备内存进行初始化,以完成对被分配给系统内存的内存容量的数值调整。
在可选的实施方式中,所述装置还包括内存调整判断模块;
所述内存调整判断模块,用于根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整;
其中,所述内存调整判断模块根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整,包括:
将所述目标系统内存数值与所述环境变量当前记录的预设系统内存数值进行比较;
若所述目标系统内存数值小于当前记录的所述预设系统内存数值,则判定需要对当前被分配给系统内存的内存容量进行调整,否则判定不需要对当前被分配给系统内存的内存容量进行调整。
在可选的实施方式中,所述装置还包括:
设备运行控制模块,用于控制所述电子设备按照得到的设备内存初始化结果运行。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令,以实现前述实施方式中任意一项所述的内存动态分配方法。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述实施方式中任意一项所述的内存动态分配方法。
相对于背景技术而言,本申请具有以下有益效果:
本申请在检测到电子设备启动时,通过读取电子设备的环境变量中记录的预设系统内存数值,并按照预设系统内存数值对设备内存进行初始化,而后获取该电子设备在实现业务功能时所需的目标业务内存数值,并根据设备内存的内存总值及该目标业务内存数值计算应被分配给操作系统的目标系统内存数值,然后采用计算得到的目标系统内存数值对环境变量当前记录的预设系统内存数值进行数值替换,最后采用替换后的当前系统内存重新对设备内存进行初始化,从而在不变更当前软件版本的操作系统的情况下根据业务实际需求动态分配设备内存,确保分配给业务功能的内存容量满足业务实际需求,降低系统软件版本的更换频率、开发成本及维护成本,提高内存分配操作的灵活性及适配性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的结构方框示意图;
图2为本申请实施例提供的内存动态分配方法的流程示意图之一;
图3为图2中的步骤S220包括的子步骤的流程示意图之一;
图4为图2中的步骤S220包括的子步骤的流程示意图之二;
图5为本申请实施例提供的内存动态分配方法的流程示意图之二;
图6为本申请实施例提供的内存动态分配方法的流程示意图之三;
图7为本申请实施例提供的内存动态分配装置的功能模块示意图之一;
图8为本申请实施例提供的内存动态分配装置的功能模块示意图之二;
图9为本申请实施例提供的内存动态分配装置的功能模块示意图之三。
图标:10-电子设备;11-存储器;12-处理器;13-通信单元;100-内存动态分配装置;110-内存初始化模块;120-业务内存获取模块;130-系统内存计算模块;140-内存调整判断模块;150-设备运行控制模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1是本申请实施例提供的电子设备10的结构方框示意图。在本申请实施例中,所述电子设备10用于实现各种业务功能,并能够在当前软件版本的操作系统下根据业务实际需求动态分配该电子设备10的设备内存,确保分配给业务功能的内存容量满足业务实际需求,无需频繁更换新软件版本的操作系统,降低系统软件版本的开发成本及维护成本,提高内存分配操作的灵活性及适配性。其中,业务功能包括视频解析功能、视频播放功能、音频解析功能及音频播放功能等多媒体功能,操作系统包括嵌入式系统及Windows系统等,该电子设备10根据操作系统的不同可被划分为不同的终端设备,其可以是,但不限于,个人电脑、智能手机及平板电脑等。
在本实施例中,所述电子设备10包括内存动态分配装置100、存储器11、处理器12及通信单元13。所述存储器11、所述处理器12及所述通信单元13各个元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,所述存储器11、所述处理器12及所述通信单元13这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
在本实施例中,所述存储器11可用于存储程序,所述处理器12在接收到执行指令后,可相应地执行所述程序。其中,所述存储器11可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
其中,所述电子设备10可从所述存储器11中单独划分一个存储空间作为该电子设备10的设备内存,并对该设备内存进行内存分配,以将该设备内存的一部分内存容量当作用于实现操作系统的运行的系统内存,并将该设备内存的另外一部分内存容量当作用于实现业务功能的业务内存。
在本实施例中,所述处理器12可以是一种具有信号的处理能力的集成电路芯片。所述处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)及网络处理器(Network Processor,NP)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
在本实施例中,所述通信单元13用于通过网络建立所述电子设备10与其他终端设备之间的通信连接,并通过网络收发数据。例如,所述电子设备10通过所述通信单元13从其他终端设备处获取所述电子设备10的业务功能所针对的数据。
在本实施例中,所述内存动态分配装置100包括至少一个能够以软件或固件的形式存储于所述存储器11中的软件功能模块。所述处理器12可用于执行所述存储器11存储的可执行模块,例如所述内存动态分配装置100所包括软件功能模块及计算机程序等。所述电子设备10通过所述内存动态分配装置100在不变更当前软件版本的操作系统的情况下根据业务实际需求动态分配设备内存,确保分配给业务功能的内存容量满足业务实际需求,降低系统软件版本的更换频率、开发成本及维护成本,提高内存分配操作的灵活性及适配性。
可以理解的是,图1所示的方框示意图仅为电子设备10的一种结构组成示意图,所述电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
在本申请中,为确保上述电子设备10能够在不变更当前软件版本的操作系统的情况下根据业务实际需求动态分配设备内存,确保分配给业务功能的内存容量满足业务实际需求,本申请通过提供应用于上述电子设备10的内存动态分配方法的方式实现上述功能。下面对本申请提供的内存动态分配方法进行相应描述。
请参照图2,图2是本申请实施例提供的内存动态分配方法的流程示意图之一。在本申请实施例中,图2所示的内存动态分配方法的具体流程和步骤如下文所示。
步骤S210,在检测到电子设备10启动时,读取电子设备10的环境变量中记录的预设系统内存数值,并按照预设系统内存数值对电子设备10的设备内存进行初始化。
在本实施例中,所述环境变量用于表示该电子设备10在实现其对应的业务功能时的操作系统的具体运行环境,所述环境变量中记录的预设系统内存数值用于表示该电子设备10的设备内存中当前被预先分配给操作系统的内存容量数值。当所述电子设备10启动时,所述电子设备10通过读取所述环境变量中记录的预设系统内存数值,并按照所述系统内存数值对所述电子设备10的设备内存进行初始化,使该设备内存的被分配给系统内存的内容容量与所述预设系统内存数值相互匹配。
在本实施例的一种实施方式中,当所述电子设备10的操作系统为嵌入式系统时,所述电子设备10为嵌入式设备,所述电子设备10在启动时,通过调用UBOOT读取环境变量中的MEM字段,得到该MEM字段当前记录的预设系统内存数值,并将读取到的所述预设系统内存数值传递给所述电子设备10的内核,由所述电子设备10的内核基于得到的预设系统内存数值完成对设备内存的初始化操作。
步骤S220,获取电子设备10在实现业务功能时所需的目标业务内存数值。
在本实施例中,所述目标业务内存数值用于表示所述电子设备10在实现当前所具有的所有业务功能时所需的最大内存容量数值。
可选地,请参照图3,图3是图2中的步骤S220包括的子步骤的流程示意图之一。在本实施例的一种实施方式中,所述电子设备10预存有不同软件产品型号各自对应的业务内存数值,其中所述软件产品型号用于表示所述电子设备10在不同阶段所具有的业务功能的产品版本,不同的软件产品型号所对应的业务功能存在差异(包括业务功能种类和/或同一业务功能的功能细节),则所述步骤S220包括子步骤S221及子步骤S222。
子步骤S221,读取电子设备10的电子标签,得到电子标签包括的当前软件产品型号。
在本实施例中,所述电子标签用于表示对应电子设备10的身份标识信息。所述电子标签包括有对应电子设备10在实现其当前所具有的业务功能时的当前软件产品型号。所述电子设备10通过读取自身的电子标签,可相应地获取到该电子标签所对应的当前软件产品型号。
子步骤S222,在预存的不同软件产品型号各自对应的业务内存数值中,查找与当前软件产品型号对应的业务内存数值,并以查找到的业务内存数值作为目标业务内存数值。
在本实施例中,当所述电子设备10读取到其对应的当前软件产品型号时,会以该当前软件产品型号所对应的业务内存数值作为目标业务内存数值。
可选地,请参照图4,图4是图2中的步骤S220包括的子步骤的流程示意图之二。在本实施例的另一种实施方式中,所述电子设备10存储有用于记录该电子设备10当前具体业务功能的配置内容的业务配置文件,则所述步骤S220包括子步骤S223及子步骤S224。
子步骤S223,读取电子设备10的业务配置文件,并对业务配置文件进行解析,得到业务配置文件包括的每个业务在被执行时所需的内存数值。
在本实施例中,所述电子设备10通过读取业务配置文件的方式,获取到该电子设备10当前所具有的业务数目及每项业务在被执行时所需的内存大小。
子步骤S224,对解析得到的每个业务在被执行时所需的内存数值进行求和运算,得到业务配置文件的内存需求值,并以业务配置文件的内存需求值作为目标业务内存数值。
在本实施例中,所述电子设备10通过计算与所述业务配置文件对应的各项业务在被执行时所需的内存数值之和的方式,得到该业务配置文件所对应的内存需求值,并以该内存需求值作为目标业务内存数值。
请再次参照图2,步骤S230,根据设备内存的内存总值及目标业务内存数值计算对应的目标系统内存数值。
在本实施例中,所述目标系统内存数值与所述目标业务内存数值之和等于所述设备内存的内存总值。所述电子设备10在得到所述目标业务内存数值后,可通过计算所述设备内存的内存总值与该目标业务内存数值之间的内存差值,得到要满足业务实际需求时所需的系统内存大小即所述目标系统内存数值。
步骤S250,采用目标系统内存数值对环境变量中记录的预设系统内存数值进行数值替换,并采用替换后的预设系统内存数值对设备内存进行初始化。
在本实施例中,当所述电子设备10得到目标系统内存数值时,可直接采用该目标系统内存数值对所述环境变量当前记录的预设系统内存数值进行修改,使记录的预设系统内存数值与该目标系统内存数值相同,而后采用替换后的预设系统内存数值重新对设备内存进行初始化,确保所述设备内存的被分配给系统内存的内存容量与所述目标系统内存数值相同,从而在不变更当前软件版本的操作系统的情况下根据业务实际需求动态分配设备内存,确保分配给业务功能的内存容量满足业务实际需求,降低系统软件版本的更换频率、开发成本及维护成本,提高内存分配操作的灵活性及适配性。
可选地,请参照图5,图5是本申请实施例提供的内存动态分配方法的流程示意图之二。在本申请实施例中,图5所示的内存动态分配方法与图2所示的内存动态分配方法相比,图5所示的内存动态分配方法还可以包括步骤S260,用以确保所述电子设备10能够正常实现其所具有的所有业务功能。
步骤S260,控制电子设备10按照得到的设备内存初始化结果运行。
在本实施例中,当所述电子设备10得到满足业务实际需求的设备内存初始化结果后,所述电子设备10将直接按照该设备内存初始化结果运行,以确保电子设备10能够正常实现其所具有的所有业务功能。
可选地,请参照图6,图6为本申请实施例提供的内存动态分配方法的流程示意图之三。在本申请实施例中,图6所示的内存动态分配方法与图5所示的内存动态分配方法相比,图6所示的内存动态分配方法在执行步骤S250之前还包括可以步骤S240,用以滤除图5中的系统内存容量调整过程中的非必要操作。
步骤S240,根据目标系统内存数值及环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整。
在本实施例中,所述电子设备10在得到当前对应的目标系统内存数值后,可通过将该目标系统内存数值与所述环境变量当前记录的预设系统内存数值进行比较的方式,判断是否需要对当前的设备内存初始化结果进行调整。其中,所述根据目标系统内存数值及环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整的步骤,包括:
将所述目标系统内存数值与所述环境变量当前记录的预设系统内存数值进行比较;
若所述目标系统内存数值小于当前记录的所述预设系统内存数值,则判定需要对当前被分配给系统内存的内存容量进行调整,否则判定不需要对当前被分配给系统内存的内存容量进行调整。
其中,当所述目标系统内存数值小于所述预设系统内存数值时,表明所述电子设备10当前的被分配给业务内存的内存容量数值小于所述目标业务数值,此时的设备内存初始化结果有极大可能不满足业务实际需求,需要对当前的设备内存初始化结果进行调整;当所述目标系统内存数值不小于所述预设系统内存数值时,表明所述电子设备10当前的被分配给业务内存的设备内存容量数值不小于所述目标业务数值,此时的设备内存初始化结果能够满足业务实际需求,无需对当前的设备内存初始化结果进行调整。
在本实施例中,当所述电子设备10判定需要对当前的设备内存初始化结果进行调整时,所述电子设备10将对应执行步骤S250及步骤S260,而当所述电子设备10判定不需要对当前的设备内存初始化结果进行调整时,所述电子设备10将直接执行步骤S260。
在本申请中,为确保所述电子设备10所包括的内存动态分配装置100能够正常实施,本申请通过对内存动态分配装置100进行功能模块划分的方式实现其功能。下面对本申请提供的内存动态分配装置100的具体组成进行相应描述。
可选地,请参照图7,图7是本申请实施例提供的内存动态分配装置100的功能模块示意图之一。在本申请实施例中,所述内存动态分配装置100包括内存初始化模块110、业务内存获取模块120及系统内存计算模块130。
所述内存初始化模块110,用于在检测到电子设备10启动时,读取电子设备10的环境变量中记录的预设系统内存数值,并按照预设系统内存数值对电子设备10的设备内存进行初始化,使该设备内存的被分配给系统内存的内存容量与预设系统内存数值匹配。
所述业务内存获取模块120,用于获取电子设备10在实现业务功能时所需的目标业务内存数值。
所述系统内存计算模块130,用于根据设备内存的内存总值及目标业务内存数值计算对应的目标系统内存数值,其中目标系统内存数值等于设备内存的内存总值与目标业务内存数值之差。
所述内存初始化模块110,还用于采用目标系统内存数值对环境变量中记录的预设系统内存数值进行数值替换,并采用替换后的预设系统内存数值对设备内存进行初始化,以完成对被分配给系统内存的内存容量的数值调整。
其中,在本实施例的一种实施方式中,所述业务内存获取模块120获取电子设备10在实现业务功能时所需的目标业务内存数值的方式,包括:
读取电子设备10的电子标签,得到电子标签包括的当前软件产品型号;
在预存的不同软件产品型号各自对应的业务内存数值中,查找与当前软件产品型号对应的业务内存数值,并以查找到的业务内存数值作为目标业务内存数值。
在本实施例的另一种实施方式中,所述业务内存获取模块120获取电子设备10在实现业务功能时所需的目标业务内存数值的方式,包括:
读取电子设备10的业务配置文件,并对业务配置文件进行解析,得到业务配置文件包括的每个业务在被执行时所需的内存数值;
对解析得到的每个业务在被执行时所需的内存数值进行求和运算,得到业务配置文件的内存需求值,并以业务配置文件的内存需求值作为目标业务内存数值。
可选地,请参照图8,图8是本申请实施例提供的内存动态分配装置100的功能模块示意图之二。在本申请实施例中,所述内存动态分配装置100还可以包括设备运行控制模块150。
所述设备运行控制模块150,用于控制电子设备10按照得到的设备内存初始化结果运行。
可选地,请参照图9,图9是本申请实施例提供的内存动态分配装置100的功能模块示意图之三。在本申请实施例中,所述内存动态分配装置100还可以包括内存调整判断模块140。
所述内存调整判断模块140,用于根据目标系统内存数值及环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整。
其中,所述内存调整判断模块140根据目标系统内存数值及环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整的方式,包括:
将目标系统内存数值与环境变量当前记录的预设系统内存数值进行比较;
若目标系统内存数值小于当前记录的预设系统内存数值,则判定需要对当前被分配给系统内存的内存容量进行调整,否则判定不需要对当前被分配给系统内存的内存容量进行调整。
需要说明的是,本申请实施例所提供的内存动态分配装置100,其基本原理及产生的技术效果与前述的内存动态分配方法相同,为简要描述,本实施例部分未提及之处,可参考上述的针对内存动态分配方法的相应描述内容。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,在本申请提供的一种内存动态分配方法、装置、电子设备及可读存储介质中,本申请在检测到电子设备启动时,通过读取电子设备的环境变量中记录的预设系统内存数值,并按照预设系统内存数值对设备内存进行初始化,而后获取该电子设备在实现业务功能时所需的目标业务内存数值,并根据设备内存的内存总值及该目标业务内存数值计算应被分配给操作系统的目标系统内存数值,然后采用计算得到的目标系统内存数值对环境变量当前记录的预设系统内存数值进行数值替换,最后采用替换后的当前系统内存重新对设备内存进行初始化,从而在不变更当前软件版本的操作系统的情况下根据业务实际需求动态分配设备内存,确保分配给业务功能的内存容量满足业务实际需求,降低系统软件版本的更换频率、开发成本及维护成本,提高内存分配操作的灵活性及适配性。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种内存动态分配方法,其特征在于,应用于电子设备,所述方法包括:
在检测到所述电子设备启动时,读取所述电子设备的环境变量中记录的预设系统内存数值,并按照所述预设系统内存数值对所述电子设备的设备内存进行初始化,使该设备内存的被分配给系统内存的内存容量与所述预设系统内存数值匹配;
获取所述电子设备在实现业务功能时所需的目标业务内存数值;
根据所述设备内存的内存总值及所述目标业务内存数值计算对应的目标系统内存数值,其中所述目标系统内存数值等于所述设备内存的内存总值与所述目标业务内存数值之差;
采用所述目标系统内存数值对所述环境变量中记录的预设系统内存数值进行数值替换,并采用替换后的预设系统内存数值对所述设备内存进行初始化,以完成对被分配给系统内存的内存容量的数值调整。
2.根据权利要求1所述的方法,其特征在于,所述获取所述电子设备在实现业务功能时所需的目标业务内存数值,包括:
读取所述电子设备的电子标签,得到所述电子标签包括的当前软件产品型号;
在预存的不同软件产品型号各自对应的业务内存数值中,查找与所述当前软件产品型号对应的业务内存数值,并以查找到的业务内存数值作为所述目标业务内存数值。
3.根据权利要求1所述的方法,其特征在于,所述获取所述电子设备在实现业务功能时所需的目标业务内存数值,包括:
读取所述电子设备的业务配置文件,并对所述业务配置文件进行解析,得到所述业务配置文件包括的每个业务在被执行时所需的内存数值;
对解析得到的每个业务在被执行时所需的内存数值进行求和运算,得到所述业务配置文件的内存需求值,并以所述业务配置文件的内存需求值作为所述目标业务内存数值。
4.根据权利要求1所述的方法,其特征在于,在所述采用所述目标系统内存数值对所述环境变量中记录的预设系统内存数值进行数值替换之前,所述方法还包括:
根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整;
其中,所述根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整,包括:
将所述目标系统内存数值与所述环境变量当前记录的预设系统内存数值进行比较;
若所述目标系统内存数值小于当前记录的所述预设系统内存数值,则判定需要对当前被分配给系统内存的内存容量进行调整,否则判定不需要对当前被分配给系统内存的内存容量进行调整。
5.根据权利要求1-4中任意一项所述的方法,其特征在于,所述方法还包括:
控制所述电子设备按照得到的设备内存初始化结果运行。
6.一种内存动态分配装置,其特征在于,应用于电子设备,所述装置包括:
内存初始化模块,用于在检测到所述电子设备启动时,读取所述电子设备的环境变量中记录的预设系统内存数值,并按照所述预设系统内存数值对所述电子设备的设备内存进行初始化,使该设备内存的被分配给系统内存的内存容量与所述预设系统内存数值匹配;
业务内存获取模块,用于获取所述电子设备在实现业务功能时所需的目标业务内存数值;
系统内存计算模块,用于根据所述设备内存的内存总值及所述目标业务内存数值计算对应的目标系统内存数值,其中所述目标系统内存数值等于所述设备内存的内存总值与所述目标业务内存数值之差;
所述内存初始化模块,还用于采用所述目标系统内存数值对所述环境变量中记录的预设系统内存数值进行数值替换,并采用替换后的预设系统内存数值对所述设备内存进行初始化,以完成对被分配给系统内存的内存容量的数值调整。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括内存调整判断模块;
所述内存调整判断模块,用于根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整;
其中,所述内存调整判断模块根据所述目标系统内存数值及所述环境变量当前记录的预设系统内存数值,判断是否需要对当前被分配给系统内存的内存容量进行调整,包括:
将所述目标系统内存数值与所述环境变量当前记录的预设系统内存数值进行比较;
若所述目标系统内存数值小于当前记录的所述预设系统内存数值,则判定需要对当前被分配给系统内存的内存容量进行调整,否则判定不需要对当前被分配给系统内存的内存容量进行调整。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
设备运行控制模块,用于控制所述电子设备按照得到的设备内存初始化结果运行。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令,以实现权利要求1-5中任意一项所述的内存动态分配方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-5中任意一项所述的内存动态分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037916.3A CN112732435B (zh) | 2019-10-29 | 2019-10-29 | 内存动态分配方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037916.3A CN112732435B (zh) | 2019-10-29 | 2019-10-29 | 内存动态分配方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732435A true CN112732435A (zh) | 2021-04-30 |
CN112732435B CN112732435B (zh) | 2024-04-05 |
Family
ID=75589034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911037916.3A Active CN112732435B (zh) | 2019-10-29 | 2019-10-29 | 内存动态分配方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732435B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419858A (zh) * | 2021-06-30 | 2021-09-21 | 明见(厦门)技术有限公司 | 一种动态内存分配方法 |
CN113722242A (zh) * | 2021-08-31 | 2021-11-30 | 龙芯中科技术股份有限公司 | 内存配置方法、装置、电子设备及可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028739A1 (en) * | 2001-07-18 | 2003-02-06 | Li Richard Chi Leung | Method and apparatus of storage allocation/de-allocation in object-oriented programming environment |
CN102253900A (zh) * | 2011-06-13 | 2011-11-23 | 华中师范大学 | 一种Windows CE操作系统下的内存优化方法 |
CN106354661A (zh) * | 2016-09-13 | 2017-01-25 | 郑州云海信息技术有限公司 | 一种针对存储软件的内存分配方法及装置 |
CN108132841A (zh) * | 2017-12-11 | 2018-06-08 | 杭州迪普科技股份有限公司 | 一种基于Linux系统的设备的内存分配方法及装置 |
CN109684232A (zh) * | 2018-10-23 | 2019-04-26 | 许继集团有限公司 | 一种嵌入式协议栈内存管理方法 |
CN110008021A (zh) * | 2019-03-05 | 2019-07-12 | 平安科技(深圳)有限公司 | 内存管理方法、装置、电子设备及计算机可读存储介质 |
-
2019
- 2019-10-29 CN CN201911037916.3A patent/CN112732435B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028739A1 (en) * | 2001-07-18 | 2003-02-06 | Li Richard Chi Leung | Method and apparatus of storage allocation/de-allocation in object-oriented programming environment |
CN102253900A (zh) * | 2011-06-13 | 2011-11-23 | 华中师范大学 | 一种Windows CE操作系统下的内存优化方法 |
CN106354661A (zh) * | 2016-09-13 | 2017-01-25 | 郑州云海信息技术有限公司 | 一种针对存储软件的内存分配方法及装置 |
CN108132841A (zh) * | 2017-12-11 | 2018-06-08 | 杭州迪普科技股份有限公司 | 一种基于Linux系统的设备的内存分配方法及装置 |
CN109684232A (zh) * | 2018-10-23 | 2019-04-26 | 许继集团有限公司 | 一种嵌入式协议栈内存管理方法 |
CN110008021A (zh) * | 2019-03-05 | 2019-07-12 | 平安科技(深圳)有限公司 | 内存管理方法、装置、电子设备及计算机可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419858A (zh) * | 2021-06-30 | 2021-09-21 | 明见(厦门)技术有限公司 | 一种动态内存分配方法 |
CN113419858B (zh) * | 2021-06-30 | 2024-02-13 | 明见(厦门)技术有限公司 | 一种动态内存分配方法 |
CN113722242A (zh) * | 2021-08-31 | 2021-11-30 | 龙芯中科技术股份有限公司 | 内存配置方法、装置、电子设备及可读介质 |
CN113722242B (zh) * | 2021-08-31 | 2023-12-08 | 龙芯中科技术股份有限公司 | 内存配置方法、装置、电子设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112732435B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN107968810B (zh) | 一种服务器集群的资源调度方法、装置和系统 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
CN112732435B (zh) | 内存动态分配方法、装置、电子设备及可读存储介质 | |
RU2000125235A (ru) | Мультимедийный терминал для множества пользователей | |
CN111046164A (zh) | 一种用于更新待阅读书籍的方法与设备 | |
CN104881318A (zh) | 一种接口调用方法、装置及终端 | |
CN111709894B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112416359A (zh) | 动态分区定制方法、装置、设备和计算机可读存储介质 | |
US20110055533A1 (en) | System management interrupt interface wrapper | |
CN113923472B (zh) | 视频内容分析方法、装置、电子设备及存储介质 | |
CN106610828B (zh) | 基于Android系统的GIF动画播放方法及装置 | |
CN110222019B (zh) | 文件系统所占空间的调整方法及装置 | |
CN113272785B (zh) | 一种挂载文件系统的方法、终端设备及存储介质 | |
CN115878327A (zh) | 总线预留方法、装置、服务器、电子设备和存储介质 | |
CN106068494A (zh) | 一种dpi的适配方法和电子设备 | |
CN112068895B (zh) | 代码配置方法、装置、视频播放设备及存储介质 | |
CN112256420B (zh) | 任务分配方法、装置及电子设备 | |
CN114510668A (zh) | 数据显示方法、装置、计算机设备及存储介质 | |
CN113918345A (zh) | 一种配置硬件的容量计算方法、装置、计算机设备及介质 | |
CN114048465A (zh) | 一种堆栈状态检测方法、装置、设备及存储介质 | |
CN112685006A (zh) | 流程管理方法、装置、电子设备及存储介质 | |
CN113296838A (zh) | 云服务器管理方法、提供数据服务的方法及装置 | |
CN115004667A (zh) | 信息推送方法、装置、电子设备及计算机可读介质 | |
CN112541327A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |