CN113961485A - 内存优化方法、装置、终端、存储介质 - Google Patents
内存优化方法、装置、终端、存储介质 Download PDFInfo
- Publication number
- CN113961485A CN113961485A CN202111248990.7A CN202111248990A CN113961485A CN 113961485 A CN113961485 A CN 113961485A CN 202111248990 A CN202111248990 A CN 202111248990A CN 113961485 A CN113961485 A CN 113961485A
- Authority
- CN
- China
- Prior art keywords
- function
- environment
- cache object
- memory
- method function
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 273
- 238000005457 optimization Methods 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims abstract description 442
- 238000004590 computer program Methods 0.000 claims description 15
- 238000013461 design Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供了一种内存优化方法、装置、终端、存储介质,该方法通过接收第一环境中的创建指令,依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,所述第一环境占用的内存大于所述第二环境占用的内存,获取所述动态内存分配函数返回的针对所述缓存对象的指针信息,将所述指针信息写入所述第一环境中的数据记录指针,通过改变缓存对象数据的存储环境,降低内存占用,实现了内存优化,提高了计算机语言脚本的兼容性和整体性能。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种内存优化方法、装置、终端、存储介质。
背景技术
随着计算机领域的发展,人们开发出了各种计算机语言引擎如爪哇脚本(JavaScript,JS)引擎来方便从业人员开发和设计各种计算机程序,这些引擎中包含各种已经书写好的函数、方法、对象、结构体等内容,从业人员需要时直接使用固定格式调用对应内容即可,无需重新书写,极大节约了时间。
但是,一般的计算机语言引擎在使用缓存对象时需要占用大量内存资源,导致内存有限的电子设备无法支持缓存对象,降低了计算机语言脚本的兼容性,影响整体性能。
发明内容
本申请实施例公开了一种内存优化方法、装置、终端、存储介质,通过改变缓存对象数据的存储环境,降低内存占用,实现了内存优化,提高了计算机语言脚本的兼容性和整体性能。
第一方面,本申请实施例提供了一种内存优化方法,其特征在于,包括:
接收第一环境中的创建指令;
依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,所述第一环境占用的内存大于所述第二环境占用的内存;
获取所述动态内存分配函数返回的针对所述缓存对象的指针信息;
将所述指针信息写入所述第一环境中的数据记录指针。
在一种可能的设计中,所述创建指令包括第一内存参数,所述依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象包括:
依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数;
将所述第一内存参数传递给所述动态内存分配函数;
执行所述动态内存分配函数,所述动态内存分配函数用于创建所述缓存对象并且为所述缓存对象在所述第二环境中分配与所述第一内存参数对应的内存。
需要说明的是,创建指令中只有包含第一内存参数,程序才能正确运行,缓存对象才能够成功创建。
因为在存储相同大小的数据时,第二环境占用的内存小于第一环境占用的内存,所以在把缓存对象的存储区的位置从第一环境转移到第二环境,可以减少缓存对象占用的内存,实现了内存的优化,还通过严格的函数参数传递过程和调用过程,确保缓存对象创建过程的顺利进行。
在一种可能的设计中,在所述将所述指针信息写入所述第一环境中的数据记录指针之后,该方法还包括:
获取所述第一环境中所述缓存对象调用的第一函数和对应参数;
依据所述第一函数确定所述第一环境的底层接口使用的方法函数;
依据所述对应参数和所述数据记录指针获取所述方法函数的参数;
依据所述方法函数和所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,在所述缓存对象的存储区执行所述方法函数对应操作。
在一种可能的设计中,所述第一函数包括读取函数、写入函数、复制函数中的任一种;
在所述第一函数包括读取函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第一下标;
在所述第一函数包括写入函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第二下标和待写入的第一数据;
在所述第一函数包括复制函数的情况下,所述对应参数包括被复制的目标缓存对象。
这样对于第一环境中缓存对象使用不同的函数,终端就根据用户输入或者其他输入获取对应参数,确保每个函数都能获取到正确的参数,保证了程序的正确运行。
在一种可能的设计中,在所述第一函数包括读取函数的情况下,所述方法函数包括获得方法函数;
在所述第一函数包括写入函数的情况下,所述方法函数包括设置方法函数;
在所述第一函数包括复制函数的情况下,所述方法函数包括复制方法函数。
使得第一函数和方法函数建立了严格的对应关系,程序逻辑严密性高。
在一种可能的设计中,在所述方法函数包括获得方法函数的情况下,所述方法函数的参数包括所述第一下标和所述数据记录指针;
在所述方法函数包括设置方法函数的情况下,所述方法函数的参数包括所述第二下标、所述第一数据和所述数据记录指针;
在所述方法函数包括复制方法函数的情况下,所述方法函数的参数包括所述目标缓存对象数据记录指针、所述目标缓存对象长度、所述缓存对象长度和所述数据记录指针。
根据方法的不同,传递的参数内容也不同,多种参数使终端对缓存对象的操作更加多样,也更加精确。
在一种可能的设计中,所述依据所述方法函数和所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,在所述缓存对象的存储区执行所述方法函数对应操作包括:
在所述方法函数为获得方法函数的情况下,执行所述获得方法函数,通过所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,获取所述存储区中所述第一下标对应的第二数据,将处理后的所述第二数据返回给所述读取函数;
在所述方法函数为设置方法函数的情况下,执行所述设置方法函数,通过所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,将所述第一数据写入所述第二下标对应的所述存储区,将写入成功结果返回给所述写入函数;
在所述方法函数为复制方法函数的情况下,执行所述复制方法函数调用所述第二环境中的第一复制函数,将所述第一复制函数执行结果返回给所述复制方法函数,获得所述复制方法函数执行结果并返回给所述复制函数。
对不同的方法函数在第二环境中的缓存对象的存储区执行对应操作,可以实现对缓存对象的多种处理,增加了利用缓存对象的方式。
第二方面,本申请实施例提供了一种内存优化的装置,其特征在于,包括:
接收单元,用于接收第一环境中的创建指令;
第一调用单元,用于依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,所述第一环境占用的内存大于所述第二环境占用的内存;
第一获取单元,用于获取所述动态内存分配函数返回的针对所述缓存对象的指针信息;
写入单元,用于将所述指针信息写入所述第一环境中的数据记录指针。
在一种可能的设计中,所述第一调用单元,具体用于:
依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数;
将所述第一内存参数传递给所述动态内存分配函数;
执行所述动态内存分配函数,所述动态内存分配函数用于创建所述缓存对象并且为所述缓存对象在所述第二环境中分配与所述第一内存参数对应的内存。
在一种可能的设计中,所述内存优化的装置还包括:
第二调用单元,用于获取所述第一环境中所述缓存对象调用的第一函数和对应参数;
确定单元,用于依据所述第一函数确定所述第一环境的底层接口使用的方法函数;
第二获取单元,用于依据所述对应参数和所述数据记录指针获取所述方法函数的参数;
执行单元,用于依据所述方法函数和所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,在所述缓存对象的存储区执行所述方法函数对应操作。
在一种可能的设计中,所述第一函数包括读取函数、写入函数、复制函数中的任一种;
在所述第一函数包括读取函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第一下标;
在所述第一函数包括写入函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第二下标和待写入的第一数据;
在所述第一函数包括复制函数的情况下,所述对应参数包括被复制的目标缓存对象。
在一种可能的设计中,在所述第一函数包括读取函数的情况下,所述方法函数包括获得方法函数;
在所述第一函数包括写入函数的情况下,所述方法函数包括设置方法函数;
在所述第一函数包括复制函数的情况下,所述方法函数包括复制方法函数。
在一种可能的设计中,在所述方法函数包括获得方法函数的情况下,所述方法函数的参数包括所述第一下标和所述数据记录指针;
在所述方法函数包括设置方法函数的情况下,所述方法函数的参数包括所述第二下标、所述第一数据和所述数据记录指针;
在所述方法函数包括复制方法函数的情况下,所述方法函数的参数包括所述目标缓存对象数据记录指针、所述目标缓存对象长度、所述缓存对象长度和所述数据记录指针。
在一种可能的设计中,所述执行单元,具体用于:
在所述方法函数为获得方法函数的情况下,执行所述获得方法函数,通过所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,获取所述存储区中所述第一下标对应的第二数据,将处理后的所述第二数据返回给所述读取函数;
在所述方法函数为设置方法函数的情况下,执行所述设置方法函数,通过所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,将所述第一数据写入所述第二下标对应的所述存储区,将写入成功结果返回给所述写入函数;
在所述方法函数为复制方法函数的情况下,执行所述复制方法函数调用所述第二环境中的第一复制函数,将所述第一复制函数执行结果返回给所述复制方法函数,获得所述复制方法函数执行结果并返回给所述复制函数。
第三方面,本申请实施例提供了一种终端,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,所述处理器执行上述方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行上述方法的步骤。
本申请实施例的终端通过执行计算机程序,接收第一环境中的创建指令,再依据创建指令使用第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,缓存对象创建成功后获取动态内存分配函数返回的针对缓存对象的指针信息,将指针信息写入第一环境中的数据记录指针,通过改变缓存对象数据的存储环境,降低内存占用,实现了内存优化,提高了计算机语言脚本的兼容性和整体性能。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图作简单的介绍。
图1a为本申请实施例提供的一种内存优化方法的流程示意图;
图1b为本申请实施例提供的另一种内存优化方法的流程示意图;
图2a为本申请实施例提供的一种创建缓存对象的结构图;
图2b为本申请实施例提供的一种记录缓存对象数据的结构图;
图2c为本申请实施例提供的一种使用缓存对象的结构图;
图2d为本申请实施例提供的一种读取缓存对象数据的结构图;
图2e为本申请实施例提供的一种缓存对象写入数据的结构图;
图2f为本申请实施例提供的一种复制缓存对象数据的结构图;
图3为本申请实施例提供的一种缓存对象生命周期流程图;
图4为本申请实施例提供的一种内存优化的装置的结构示意图;
图5为本申请实施例提供的一种终端的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,在本文中,采用了诸如S201、S202等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S202后执行S201等,但这些均应在本申请的保护范围之内。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本申请中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(PersonalDigitalAssistant,PDA)、便捷式媒体播放器(PortableMediaPlayer,PMP)、导航装置、可穿戴设备、智能手环、计步器等智能终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以个人计算机(personalcomputer,PC)为例进行说明,本领域技术人员将理解的是,除了特别用于固定目的的元件之外,根据本申请的实施方式的构造也能够应用于移动类型的终端。
本申请实施例提供了一种内存优化方法、装置、终端、存储介质,为了更清楚的描述本申请的方案,下面结合本申请实施例中的附图对本申请实施例进行描述。
随着计算机领域的发展,人们开发出了各种计算机语言引擎如爪哇脚本(JavaScript,JS)引擎、Python引擎等来方便从业人员开发和设计各种计算机程序,这些引擎中包含各种已经书写好的函数、方法、对象、结构体等内容,从业人员需要时直接使用固定格式调用对应内容即可,无需重新书写,极大节约了时间。
但是,一般的计算机语言引擎在使用缓存(buffer)对象时需要占用大量内存资源,导致内存有限的电子设备无法支持缓存对象,降低了计算机语言脚本的兼容性,影响整体性能。
针对上述问题本申请实施例提供了一种内存优化方法,通过改变缓存对象数据的存储环境,降低内存占用,实现了内存优化,提高了计算机语言脚本的兼容性和整体性能。
请参见图1a,为本申请实施例提供的一种内存优化方法的流程示意图,该内存优化方法应用于终端,该方法包括但不限于以下步骤。
S201:接收第一环境中的创建指令。
需要说明的是,第一环境是计算机语言环境,创建指令指的是创建缓存对象的指令。
具体的,终端接收第一环境中的创建指令,用户可以输入相关创建命令,如要新建一个缓存(buffer)对象需要输入的相关创建指令就是新建对象newBuffer(),这是JavaScript引擎规定的格式,用来提示终端要新建一个buffer对象,在终端判定有这个标志后获取用户输入的相关数据或者系统分配的数据组成一个完整的创建指令供终端执行。在获得第一环境的上述创建指令后,终端就可根据上述创建指令执行后续步骤S202。
在接收第一环境中的创建指令之后,终端才会执行对应操作,减少了不必要操作的进行,节约了终端的内存空间。
S202:依据创建指令使用第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,上述第一环境占用的内存大于上述第二环境占用的内存。
需要说明的是,第二环境也是计算机语言环境,第一环境为JavaScript环境,第二环境为C语言环境,第一环境和第二环境代表的环境不是固定不变,上述仅为本申请实施例的一种情况,只要满足在存储相同数据时第一环境占用内存大于第二环境,就符合本申请保护范围。
具体的,可参照图2a,为本申请实施例提供的一种创建缓存对象的结构图,由于终端已经接收第一环境中的创建指令,上述创建指令就包括图中的创建缓存对象、缓存对象需要的内存、缓存对象需要的来源这三个参数,需要说明的是创建指令中创建缓存对象和缓存对象需要的内存是必须的,其余限制参数或条件用户或者系统可根据实际需要添加。根据上述创建指令调用第一环境中的底层接口,底层接口再根据创建指令要求调用第二环境的动态内存分配函数,终端执行动态内存分配函数创建缓存对象。
因为在存储相同的数据时,C语言环境占用的内存小于JavaScript环境占用的内存,所以在把缓存对象的存储区的位置从JavaScript环境转移到C语言环境,可以减少缓存对象占用的内存,实现了内存的优化。
可选的,上述创建指令包括第一内存参数,上述依据上述创建指令使用上述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象包括:
依据上述创建指令使用上述第一环境的底层接口调用第二环境中的动态内存分配函数;
将上述第一内存参数传递给上述动态内存分配函数;
执行上述动态内存分配函数,上述动态内存分配函数用于创建上述缓存对象并且为上述缓存对象在上述第二环境中分配与上述第一内存参数对应的内存。
需要说明的是,上述第一内存参数是指要为buffer对象在存储区申请的内存的大小,上述第一内存参数是创建指令中必须包含的数据,只有获得这个数据后终端才知道要为缓存对象申请多少内存,并且判断终端剩余内存是否满足申请的要求,如果不满足就返回内存不足的信息供终端或者用户进行对应的调整;如果满足那就为缓存对象分配与第一内存参数大小相同的内存。
没有上述第一内存参数,程序无法正确运行,缓存对象也无法成功创建。
具体的,也可参照图2a,为本申请实施例提供的一种创建缓存对象的结构图,终端接收第一环境中的创建指令,创建指令包括创建缓存对象newBuffer()、缓存对象需要的内存Buffer.alloc()、缓存对象需要的来源Buffer.from(),终端在识别到创建指令中的newBuffer()时,就会调用底层接口中的native.malloc()函数,再将Buffer.alloc()中携带的第一内存参数传递给native.malloc()函数;native.malloc()函数获得第一内存参数后,终端会根据native.malloc()函数调用第二环境中的动态内存分配函数malloc(),将上述第一内存参数传递给上述动态内存分配函数就是把native.malloc()函数获得的第一内存参数再传递给malloc()函数,malloc()函数获得第一内存参数后,终端执行malloc()函数,创建缓存对象并且为缓存对象在第二环境中分配与第一内存参数相同大小的存储区,如果终端内存足够就为缓存对象分配对应内存,缓存对象创建成功,否则创建失败并提示失败原因。
上述步骤通过严格的函数参数传递过程和调用过程,确保缓存对象创建过程的顺利进行。即使失败,终端或者用户也可知道失败原因,进行修正,减少了试错过程,节约时间。
S203:获取动态内存分配函数返回的针对缓存对象的指针信息。
具体的,创建缓存对象成功后,终端获取动态内存分配函数返回的针对缓存对象的指针信息,上述指针信息包括记录缓存对象的存储区位置的指针信息、存储区大小、数据类型等关于缓存对象的具体信息。
S204:将指针信息写入第一环境中的数据记录指针。
需要说明的是,数据记录指针是记录缓存对象存储位置和数据信息的指针,每个缓存对象都有对应的数据记录指针。
具体的,如图2b为本申请实施例提供的一种记录缓存对象数据的结构图所示,在终端获得动态内存分配函数返回的针对缓存对象的指针信息后,将获得的指针信息写入第一环境中的数据记录指针(Handle)。
因为缓存对象在第二环境中创建,又因为终端程序的一些规定,两个环境中建立的一些对象不能直接使用,所以如果要在第一环境中直接使用缓存对象,是无法直接使用的,因为终端无法找到存储缓存对象的区域,也就无法对缓存对象进行操作,而使用数据记录指针就可以记录每个缓存对象对应的存储区地址和存储区大小,那么在第一环境中使用缓存对象时借助数据记录指针就可使用第二环境中创建的缓存对象了。
因为每个缓存对象都有对应的数据记录指针,保证了每个缓存对象在被使用时都可以访问到正确的存储位置,确保对缓存对象各种操作可被实施。
可选的,请参见图1b为本申请实施例提供的另一种内存优化方法的流程示意图。在步骤S204之后已经成功创建缓存对象,创建缓存对象就是因为要使用缓存对象,使用缓存对象的步骤详细描述如下。
S205:获取第一环境中缓存对象调用的第一函数和对应参数。
具体的,终端获取第一环境中缓存对象要调用的第一函数,确定第一函数要执行什么操作,再根据第一函数的需求获取对应参数,对应参数根据第一函数要执行的操作的不同而不同。
可选的,上述第一函数包括读取函数、写入函数、复制函数中的任一种;
在上述第一函数包括读取函数的情况下,上述对应参数包括待访问的上述缓存对象的数组的第一下标;
在上述第一函数包括写入函数的情况下,上述对应参数包括待访问的上述缓存对象的数组的第二下标和待写入的第一数据;
在上述第一函数包括复制函数的情况下,上述对应参数包括被复制的目标缓存对象。
这样对于第一环境中缓存对象使用不同的函数,终端就根据用户输入或者其他输入获取对应参数,确保每个函数都能获取到正确的参数,保证了程序的正确运行。
S206:依据第一函数确定第一环境的底层接口使用的方法函数。
具体的,请参见图2c,为本申请实施例提供的一种使用缓存对象的结构图。
需要说明的是,因为第一函数也就是图中的方法无法直接访问第二环境,所以需要借助底层接口中的方法函数和数据记录指针才可以访问第二环境中的缓存对象存储区。同时还为每个缓存对象重新设置了垃圾回收函数,确保要清除缓存对象时,不仅释放在第二环境中的缓存对象的存储区,第一环境中的对应数据记录指针也会被释放,极大的节约了内存空间。
因为第一函数中的选用的函数不同那么底层接口选用的方法函数也不同,终端在确定第一函数后,就可根据第一函数确定第一环境的底层接口使用的方法函数。
可选的,在上述第一函数包括读取函数的情况下,上述方法函数包括获得方法函数;
在上述第一函数包括写入函数的情况下,上述方法函数包括设置方法函数;
在上述第一函数包括复制函数的情况下,上述方法函数包括复制方法函数。
具体的,如果第一函数是读取函数readUInt8()的情况下,对应方法函数就是获得方法函数native.get();如果第一函数是写入函数writeUInt8()的情况下,对应方法函数就是设置方法函数native.set();如果第一函数是复制函数copy()的情况下,对应方法函数就是设置方法函数native.copy()。
这样第一函数和方法函数就建立了严格的对应关系,程序逻辑严密性高。
S207:依据对应参数和数据记录指针获取方法函数的参数。
具体的,在确定要使用的方法函数后,就必须要获得方法函数的参数,上述方法函数的参数一般由第一函数的对应参数和数据记录指针组成,可根据具体需求更改。
可选的,在上述方法函数包括获得方法函数的情况下,上述方法函数的参数包括上述第一下标和上述数据记录指针;
在上述方法函数包括设置方法函数的情况下,上述方法函数的参数包括上述第二下标、上述第一数据和上述数据记录指针;
在上述方法函数包括复制方法函数的情况下,上述方法函数的参数包括上述目标缓存对象数据记录指针、上述目标缓存对象长度、上述缓存对象长度和上述数据记录指针。
具体的,在上述方法函数是获得方法函数的情况下,请参见图2d,为本申请实施例提供的一种读取缓存对象数据的结构图。在图中我们可以看到,终端获取读取函数的参数1和数据记录指针作为获得方法函数的参数,上述参数1就是上述第一下标。
在上述方法函数是设置方法函数的情况下,请参见图2e,为本申请实施例提供的一种缓存对象写入数据的结构图。在图中我们可以看到,终端获取写入函数的参数1、参数2和数据记录指针作为设置方法函数的参数,上述参数1就是上述第一数据,上述参数2就是上述第二下标。
在上述方法函数是复制方法函数的情况下,请参见图2f,为本申请实施例提供的一种复制缓存对象数据的结构图。在图中我们可以看到,终端获取复制函数的参数1,上述参数1就是上述目标缓存对象,终端根据参数1找到目标缓存对象,再把缓存对象的数据记录指针1和长度1以及目标缓存对象的数据记录指针2和长度2传递给复制方法函数做参数,上述数据记录指针1对应图中指针1,上述长度1对应图中方法函数参数长度1,上述数据记录指针2对应图中指针2,上述长度2对应图中方法函数参数长度2。
根据方法的不同,传递的参数内容也不同,多种参数使终端对缓存对象的操作更加多样,也更加精确。
S208:依据方法函数和方法函数的参数访问第二环境中的缓存对象的存储区,在缓存对象的存储区执行上述方法函数对应操作。
具体的,不同的方法函数在第二环境中执行的操作不同,在确定方法函数和获得参数后,就可以根据参数去对应缓存对象的存储区执行对应操作,操作包括但不限于对存储区数据的增删查改。
可选的,上述依据上述方法函数和上述方法函数的参数访问上述第二环境中的上述缓存对象的存储区,在上述缓存对象的存储区执行上述方法函数对应操作包括:
在上述方法函数为获得方法函数的情况下,执行上述获得方法函数,通过上述方法函数的参数访问上述第二环境中的上述缓存对象的存储区,获取上述存储区中上述第一下标对应的第二数据,将处理后的上述第二数据返回给上述读取函数;
在上述方法函数为设置方法函数的情况下,执行上述设置方法函数,通过上述方法函数的参数访问上述第二环境中的上述缓存对象的存储区,将上述第一数据写入上述第二下标对应的上述存储区,将写入成功结果返回给上述写入函数;
在上述方法函数为复制方法函数的情况下,执行上述复制方法函数调用上述第二环境中的第一复制函数,将上述第一复制函数执行结果返回给上述复制方法函数,获得上述复制方法函数执行结果并返回给上述复制函数。
具体的,在上述方法函数为获得方法函数的情况下,请参见图2d,终端执行获得方法函数,通过获得方法函数中的数据记录指针访问第二环境中的上述缓存对象的存储区,再根据参数1找到需要读取的具体位置,获取上述存储区中上述第一下标位置存储的第二数据,将处理后的上述第二数据返回给上述读取函数,如果没有成功获取上述第二数据,则获得方法函数会失败抛出异常。
在上述方法函数为设置方法函数的情况下,请参见图2e,终端执行设置方法函数,通过设置方法函数中的数据记录指针访问第二环境中的上述缓存对象的存储区,再根据参数2找到需要读取的具体位置,将上述第一数据写入上述第二下标对应的上述存储区,写入成功后设置方法函数将写入成功结果返回给上述写入函数,失败则抛出异常。
在上述方法函数为复制方法函数的情况下,请参见图2f,执行上述复制方法函数调用上述第二环境中的第一复制函数memcpy(),执行第一复制函数再将上述第一复制函数执行结果返回给上述复制方法函数,获得上述复制方法函数执行结果并返回给上述复制函数。图中第一复制函数的参数指针1来自复制方法函数的指针1,指针2来自复制方法函数的指针2,大小为复制方法函数的长度1和长度2中数值小的一个。
不同的方法函数在第二环境中的缓存对象存储区执行不同操作,可以实现对缓存对象的多种处理,增加了缓存对象的利用方式。
由上述所有内容可知缓存对象的生命周期如图3为本申请实施例提供的一种缓存对象生命周期流程图所示。
终端接收创建指令后,缓存对象生命周期开始,终端根据创建指令申请内存,如果内存申请成功,则用数据记录指针记录新创建的缓存对象,同时为缓存对象创建垃圾回收函数,在垃圾回收函数计数还没有归零时继续执行缓存对象相关业务,归零就调用垃圾回收函数释放第二环境中的缓存对象对应存储区,缓存对象生命周期结束;如果内存申请不成功,则缓存对象生命周期结束。
为了便于更好地实施本申请实施例的上述方案,本申请还提供了用于实现实施上述方案的终端。
请参见图4,为本申请实施例提供的一种内存优化的装置的结构示意图,如图4所示的内存优化的装置40可包括:接收单元401、第一调用单元402、第一获取单元403、写入单元404。该内存优化的装置40可以用于执行上述方法实施例中的相关描述。其中,
接收单元401,用于接收第一环境中的创建指令;
第一调用单元402,用于依据上述创建指令使用上述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,上述第一环境占用的内存大于上述第二环境占用的内存;
第一获取单元403,用于获取上述动态内存分配函数返回的针对上述缓存对象的指针信息;
写入单元404,用于将上述指针信息写入上述第一环境中的数据记录指针。
在一种可能的设计中,上述第一调用单元402,具体用于:
依据上述创建指令使用上述第一环境的底层接口调用第二环境中的动态内存分配函数;
将上述第一内存参数传递给上述动态内存分配函数;
执行上述动态内存分配函数,上述动态内存分配函数用于创建上述缓存对象并且为上述缓存对象在上述第二环境中分配与上述第一内存参数对应的内存。
在一种可能的设计中,上述装置还包括:
第二调用单元405,用于获取上述第一环境中上述缓存对象调用的第一函数和对应参数;
确定单元406,用于依据上述第一函数确定上述第一环境的底层接口使用的方法函数;
第二获取单元407,用于依据上述对应参数和上述数据记录指针获取上述方法函数的参数;
执行单元408,用于依据上述方法函数和上述方法函数的参数访问上述第二环境中的上述缓存对象的存储区,在上述缓存对象的存储区执行上述方法函数对应操作。
在一种可能的设计中,所述第一函数包括读取函数、写入函数、复制函数中的任一种;
在所述第一函数包括读取函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第一下标;
在所述第一函数包括写入函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第二下标和待写入的第一数据;
在所述第一函数包括复制函数的情况下,所述对应参数包括被复制的目标缓存对象。
在一种可能的设计中,在所述第一函数包括读取函数的情况下,所述方法函数包括获得方法函数;
在所述第一函数包括写入函数的情况下,所述方法函数包括设置方法函数;
在所述第一函数包括复制函数的情况下,所述方法函数包括复制方法函数。
在一种可能的设计中,在所述方法函数包括获得方法函数的情况下,所述方法函数的参数包括所述第一下标和所述数据记录指针;
在所述方法函数包括设置方法函数的情况下,所述方法函数的参数包括所述第二下标、所述第一数据和所述数据记录指针;
在所述方法函数包括复制方法函数的情况下,所述方法函数的参数包括所述目标缓存对象数据记录指针、所述目标缓存对象长度、所述缓存对象长度和所述数据记录指针。
在一种可能的设计中,上述执行单元408,具体用于:
在上述方法函数为获得方法函数的情况下,执行上述获得方法函数,通过上述方法函数的参数访问上述第二环境中的上述缓存对象的存储区,获取上述存储区中上述第一下标对应的第二数据,将处理后的上述第二数据返回给上述读取函数;
在上述方法函数为设置方法函数的情况下,执行上述设置方法函数,通过上述方法函数的参数访问上述第二环境中的上述缓存对象的存储区,将上述第一数据写入上述第二下标对应的上述存储区,将写入成功结果返回给上述写入函数;
在上述方法函数为复制方法函数的情况下,执行上述复制方法函数调用上述第二环境中的第一复制函数,将上述第一复制函数执行结果返回给上述复制方法函数,获得上述复制方法函数执行结果并返回给上述复制函数。
需要说明的是,本申请实施例所描述的内存优化的装置40中各功能单元的功能可根据上述方法实施例中的方法具体实现,此处不再赘述。
图5为本申请实施例提供的一种终端的结构示意图,该终端50可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,CPU)502(例如,一个或一个以上处理器)和存储器508,一个或一个以上存储应用程序506或数据505的存储介质507(例如一个或一个以上海量存储设备)。其中,存储器508和存储介质507可以是短暂存储或持久存储。存储在存储介质507的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器502可以设置为与存储介质507通信,在终端50上执行存储介质507中的一系列指令操作。终端50可以为本申请提供的软件运行设备。
终端50还可以包括一个或一个以上电源503,一个或一个以上有线或无线网络接口509,一个或一个以上输入输出接口510,和/或,一个或一个以上操作系统504,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由软件运行设备所执行的步骤可以基于该图5所示的终端结构。具体的,中央处理器502可实现图4中各单元的功能。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。该计算机可读存储介质包括:只读存储器(read-onlymemory,ROM)或随机存取存储器(randomaccessmemory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本申请实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solidstatedisk,SSD))等。
综上所述,通过实施本申请实施例,终端通过执行计算机程序,接收第一环境中的创建指令,再依据创建指令使用第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,缓存对象创建成功后获取动态内存分配函数返回的针对缓存对象的指针信息,将指针信息写入第一环境中的数据记录指针,通过改变缓存对象数据的存储环境,降低内存占用,实现了内存优化,提高了计算机语言脚本的兼容性和整体性能。
同时对于缓存对象的各种操作设置对应的函数,包括读取函数、写入函数、复制函数实现对缓存对象的基本使用,用户直接调用函数即可,无需重复书写,节约了用户使用时间。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
综上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种内存优化方法,其特征在于,包括:
接收第一环境中的创建指令;
依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,所述第一环境占用的内存大于所述第二环境占用的内存;
获取所述动态内存分配函数返回的针对所述缓存对象的指针信息;
将所述指针信息写入所述第一环境中的数据记录指针。
2.根据权利要求1所述的方法,其特征在于,所述创建指令包括第一内存参数,所述依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象包括:
依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数;
将所述第一内存参数传递给所述动态内存分配函数;
执行所述动态内存分配函数,所述动态内存分配函数用于创建所述缓存对象并且为所述缓存对象在所述第二环境中分配与所述第一内存参数对应的内存。
3.根据权利要求1或2所述的方法,其特征在于,在所述将所述指针信息写入所述第一环境中的数据记录指针之后,该方法还包括:
获取所述第一环境中所述缓存对象调用的第一函数和对应参数;
依据所述第一函数确定所述第一环境的底层接口使用的方法函数;
依据所述对应参数和所述数据记录指针获取所述方法函数的参数;
依据所述方法函数和所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,在所述缓存对象的存储区执行所述方法函数对应操作。
4.根据权利要求3所述的方法,其特征在于,所述第一函数包括读取函数、写入函数、复制函数中的任一种;
在所述第一函数包括读取函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第一下标;
在所述第一函数包括写入函数的情况下,所述对应参数包括待访问的所述缓存对象的数组的第二下标和待写入的第一数据;
在所述第一函数包括复制函数的情况下,所述对应参数包括被复制的目标缓存对象。
5.根据权利要求4所述的方法,其特征在于,
在所述第一函数包括读取函数的情况下,所述方法函数包括获得方法函数;
在所述第一函数包括写入函数的情况下,所述方法函数包括设置方法函数;
在所述第一函数包括复制函数的情况下,所述方法函数包括复制方法函数。
6.根据权利要求5所述的方法,其特征在于,
在所述方法函数包括获得方法函数的情况下,所述方法函数的参数包括所述第一下标和所述数据记录指针;
在所述方法函数包括设置方法函数的情况下,所述方法函数的参数包括所述第二下标、所述第一数据和所述数据记录指针;
在所述方法函数包括复制方法函数的情况下,所述方法函数的参数包括所述目标缓存对象数据记录指针、所述目标缓存对象长度、所述缓存对象长度和所述数据记录指针。
7.根据权利要求6所述的方法,其特征在于,所述依据所述方法函数和所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,在所述缓存对象的存储区执行所述方法函数对应操作包括:
在所述方法函数为获得方法函数的情况下,执行所述获得方法函数,通过所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,获取所述存储区中所述第一下标对应的第二数据,将处理后的所述第二数据返回给所述读取函数;
在所述方法函数为设置方法函数的情况下,执行所述设置方法函数,通过所述方法函数的参数访问所述第二环境中的所述缓存对象的存储区,将所述第一数据写入所述第二下标对应的所述存储区,将写入成功结果返回给所述写入函数;
在所述方法函数为复制方法函数的情况下,执行所述复制方法函数调用所述第二环境中的第一复制函数,将所述第一复制函数执行结果返回给所述复制方法函数,获得所述复制方法函数执行结果并返回给所述复制函数。
8.一种内存优化的装置,其特征在于,包括:
接收单元,用于接收第一环境中的创建指令;
第一调用单元,用于依据所述创建指令使用所述第一环境的底层接口调用第二环境中的动态内存分配函数创建缓存对象,在存储相同数据时,所述第一环境占用的内存大于所述第二环境占用的内存;
第一获取单元,用于获取所述动态内存分配函数返回的针对所述缓存对象的指针信息;
写入单元,用于将所述指针信息写入所述第一环境中的数据记录指针。
9.一种终端,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,所述处理器执行如权利要求1至7中任一项权利要求所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行如权利要求1至7中任一项权利要求所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111248990.7A CN113961485A (zh) | 2021-10-26 | 2021-10-26 | 内存优化方法、装置、终端、存储介质 |
PCT/CN2022/094223 WO2023071158A1 (zh) | 2021-10-26 | 2022-05-20 | 内存优化方法、装置、终端、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111248990.7A CN113961485A (zh) | 2021-10-26 | 2021-10-26 | 内存优化方法、装置、终端、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961485A true CN113961485A (zh) | 2022-01-21 |
Family
ID=79467168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111248990.7A Pending CN113961485A (zh) | 2021-10-26 | 2021-10-26 | 内存优化方法、装置、终端、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113961485A (zh) |
WO (1) | WO2023071158A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023071158A1 (zh) * | 2021-10-26 | 2023-05-04 | 西安广和通无线通信有限公司 | 内存优化方法、装置、终端、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069477B1 (en) * | 2011-06-16 | 2015-06-30 | Amazon Technologies, Inc. | Reuse of dynamically allocated memory |
CN109871276A (zh) * | 2019-01-14 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种基于Lua获取手机应用内存的方法及装置 |
CN113391916A (zh) * | 2020-03-12 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 组织架构数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303534C (zh) * | 2003-03-03 | 2007-03-07 | 华为技术有限公司 | 一种内存池管理的方法 |
US8910136B2 (en) * | 2011-09-02 | 2014-12-09 | International Business Machines Corporation | Generating code that calls functions based on types of memory |
CN107102957A (zh) * | 2016-02-22 | 2017-08-29 | 深圳市知穹科技有限公司 | 一种基于gpu与nic之间的内存高速直接交换的方法及系统 |
CN110022341B (zh) * | 2018-01-10 | 2022-01-25 | 腾讯科技(深圳)有限公司 | 一种数据传输方法及相关设备 |
CN110245091B (zh) * | 2018-10-29 | 2022-08-26 | 浙江大华技术股份有限公司 | 一种内存管理的方法、装置及计算机存储介质 |
CN113961485A (zh) * | 2021-10-26 | 2022-01-21 | 西安广和通无线通信有限公司 | 内存优化方法、装置、终端、存储介质 |
-
2021
- 2021-10-26 CN CN202111248990.7A patent/CN113961485A/zh active Pending
-
2022
- 2022-05-20 WO PCT/CN2022/094223 patent/WO2023071158A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069477B1 (en) * | 2011-06-16 | 2015-06-30 | Amazon Technologies, Inc. | Reuse of dynamically allocated memory |
CN109871276A (zh) * | 2019-01-14 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种基于Lua获取手机应用内存的方法及装置 |
CN113391916A (zh) * | 2020-03-12 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 组织架构数据处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
REDNAXELAFX: "ava使用JNI调用C写的库时,使用malloc分配的内存是由谁来管理?", pages 1 - 3, Retrieved from the Internet <URL:https://www.zhihu.com/question/28250278> * |
姚兴旺;: "如何实现数据空间的动态存储管理", 科学咨询(科技・管理), no. 01, 3 January 2015 (2015-01-03) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023071158A1 (zh) * | 2021-10-26 | 2023-05-04 | 西安广和通无线通信有限公司 | 内存优化方法、装置、终端、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023071158A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109906433B (zh) | 针对容器的存储隔离 | |
JP5149912B2 (ja) | 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 | |
RU2509347C2 (ru) | Гибкое увеличение страниц памяти | |
US9400667B2 (en) | String cache file for optimizing memory usage in a Java virtual machine | |
KR101729097B1 (ko) | 복수의 가상 머신에서 수행되는 응용 프로그램들간 참조 데이터를 공유하는 방법 및 이를 위한 참조 데이터 관리 장치 및 시스템 | |
US9507613B2 (en) | Methods and apparatus for dynamically preloading classes | |
US20190004841A1 (en) | Memory Sharing For Virtual Machines | |
US8041849B2 (en) | Method for handling small computer system interface (SCSI) commands via a redundant array of inexpensive disks (RAID) device driver | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
EP1094392A1 (en) | Method and apparatus for interfacing with a secondary storage system | |
US11182283B2 (en) | Allocation of memory within a data type-specific memory heap | |
CN113641413A (zh) | 目标模型加载更新方法及装置、可读介质和电子设备 | |
RU2510073C2 (ru) | Управление дескриптором типа для замороженных объектов | |
JP3731859B2 (ja) | ハンドヘルド装置のデータ記憶およびデータ取出しのための方法および装置 | |
US8327122B2 (en) | Method and system for providing context switch using multiple register file | |
CN113961485A (zh) | 内存优化方法、装置、终端、存储介质 | |
US10599444B2 (en) | Extensible input stack for processing input device data | |
US11205019B2 (en) | Multiple computing environments on a computer system | |
US8510757B2 (en) | Gathering pages allocated to an application to include in checkpoint information | |
US12118245B2 (en) | File system improvements for zoned storage device operations | |
US7681009B2 (en) | Dynamically updateable and moveable memory zones | |
US20190213015A1 (en) | Extensible input stack for processing input device data | |
CN111104067B (zh) | 面向列的缓存方法、装置、设备及计算机可读存储介质 | |
US20240256352A1 (en) | System and method for managing data retention in distributed systems | |
US20080172530A1 (en) | Apparatus and method for managing stacks for efficient memory usage |
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 |