CN116594919A - 一种用于处理内存碎片的方法、计算机设备及介质 - Google Patents
一种用于处理内存碎片的方法、计算机设备及介质 Download PDFInfo
- Publication number
- CN116594919A CN116594919A CN202310317373.0A CN202310317373A CN116594919A CN 116594919 A CN116594919 A CN 116594919A CN 202310317373 A CN202310317373 A CN 202310317373A CN 116594919 A CN116594919 A CN 116594919A
- Authority
- CN
- China
- Prior art keywords
- memory
- head address
- space
- memory block
- block
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 367
- 238000000034 method Methods 0.000 title claims abstract description 64
- 239000012634 fragment Substances 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 238000004088 simulation Methods 0.000 claims abstract description 29
- 238000012360 testing method Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 28
- 238000013507 mapping Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013467 fragmentation Methods 0.000 claims description 9
- 238000006062 fragmentation reaction Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
- 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/5022—Mechanisms to release resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开一种用于处理内存碎片的方法、计算机设备及介质。在一具体实施方式中,该方法包括:优化内存池内存管理方式和限制等量内存申请长度。该实施方式通过设计内存池和限制等量内存申请长度解决了连续内存块不足情况和内存申请失败的问题,提升了记录回放软件的性能和内存利用率,提高了仿真试验的可靠度。
Description
技术领域
本发明涉及计算机技术领域。更具体地,涉及一种用于处理内存碎片的方法、计算机设备及介质。
背景技术
LVC仿真试验是现在装备体系验证的重要支撑手段,随着装备体系复杂度的提升,仿真需求在规模、范围以及形式上也逐渐扩大和升级。考虑到资源重用和时间成本等因素影响,LVC仿真中多以记录回放工具软件模拟资源,降低成本。
由于记录回放工具软件需要将LVC仿真试验过程中的过程数据逐条记录和存储,因此需要频繁的从内存空间中申请内存。而为了提高存储效率以满足分布式仿真试验要求,往往会采取多线程并行方式,这就导致了申请内存的生命周期、字段长度和释放时机等都不等同和不确定,这样混乱的内存申请易形成大量的内存碎片。同时,仿真试验往往持续时间较长,这样就对记录回放软件提出了长续航要求,在长续航状态下内存碎片问题发生累计,极其容易出现内存容量充足但是连续内存块不足的情况,进而潜伏内存申请失败,工具软件崩溃的问题。
内存碎片的产生实际发生在连续内存的不等量分配与前段内存的释放过程中,当一段连续内存被多次分配,且每次分配的内存长度不等,内存就被分割成了不同长度的内存块,而内存中地址靠前的内存块被释放时,就可能出现由于申请内存块长度大于释放内存块长度,导致即便有空余内存空间,也被隔断在不同的区域而无法组成一条满足长度需求的空闲内存块,导致内存申请失败。针对内存碎片问题,设计内存池是目前主流的技术方案,内存池以设计内存映射表的方式对内存空间的使用进行更细致的管理,可以一定程度上解决内存碎片问题。
发明内容
本发明的目的在于提供一种用于处理内存碎片的方法、计算机设备及介质,以解决现有技术存在的问题中的至少一个。
为达到上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种用于处理记录回放软件内存碎片的方法,适用于LVC仿真试验中,该方法包括优化内存池内存管理方式和限制等量内存申请长度。
可选地,所述内存池为链表结构,所述链表结构包括链表头节点结构和多个链表节点结构体;其中,
所述链表头节点结构包括内存节点数量、所申请内存条首地址以及链表下一节点地址;
所述链表节点结构体包括内存块空余大小、所映射内存块首地址、剩余内存块映射首地址以及链表下一节点地址。
可选地,所述所申请内存条首地址指向所述内存池所申请的连续内存空间首地址;所述所映射内存块首地址指向被划分后的内存块空间首地址;所述剩余内存块映射首地址指向内存块空余空间首地址;其中
当所述内存块为空时,所述所申请内存条首地址和所述所映射内存块首地址指向相同内存地址。
可选地,所述优化内存池内存管理方式包括
在初始化内存池时,所述内存池根据输入申请内存条总长度的内存空间和输入内存块最大长度,将所述内存空间等量划分为多个内存块后生成所述链表结构;
在仿真试验过程中,将待记录的过程数据根据数据量大小向所述内存池申请所需内存空间;
所述内存池遍历所述链表结构,并根据当前节点的所述内存块空余大小分配空余内存块内存空间;
当所述所需内存空间大于所述空余内存块内存空间时,将所述空余内存块内存空间全部分配并遍历到下一个节点。
可选地,所述优化内存池内存管理方式还包括
当所述所需内存空间小于所述空余内存块内存空间时,顺序分配所述空余内存块内存空间,并将所述剩余内存块映射首地址修改为所述空余内存块内存空间首地址;
在所述顺序分配完成后,更新所述内存块空余大小的数值并返回存储数据段的首地址及大小;
在内存释放时,跟据所述存储数据段首地址及大小寻找并释放内存,并修改所述剩余内存块映射首地址及所述内存块空余大小。
可选地,所述限制等量内存申请长度包括
在设计仿真系统时,根据所述过程数据的数据字段平均大小,设计内存申请长度,并将所述内存申请长度或所述内存申请长度的整数分之一长度设置为所述内存池划分内存块的最大长度。
可选地,所述限制等量内存申请长度还包括
当记录数据量达到内存块长度或所述内存块长度的整数倍时,释放内存并写入文件;
在记录结束后,通过对所有所述文件跟据时间顺序进行拼接得到记录数据包。
可选地,所述限制等量内存申请长度为后期配置项。
本发明第二方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现用于处理内存碎片的方法用于处理内存碎片的方法。
本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现用于处理内存碎片的方法。
本发明的有益效果如下:
本发明公布的一种用于处理记录回放软件内存碎片的方法,通过设计内存池和限制等量内存申请长度解决了连续内存块不足情况和内存申请失败的问题,提升了记录回放软件的性能和内存利用率,提高了仿真试验的可靠度。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出本发明实施例提供的方法的映射链表、内存池和限制长度组成示意图。
图2示出本发明实施例提供的方法的内存池映射链表结构示意图。
图3示出本发明实施例提供的方法的内存池使用流程图。
图4示出实现本发明实施例提供的方法的计算机系统的结构示意图。
具体实施方式
为了更清楚地说明本发明,下面结合实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
目前,LVC仿真的规模和范围日益扩大,对于稀缺的和高成本的仿真资源,记录回放软件工具是降低成本和协助分析评估的必要手段,提升记录回放软件的性能,就是在协助仿真试验。
由于记录回放工具软件需要将LVC仿真试验过程中的过程数据逐条记录、存储,因此需要频繁的从内存空间中申请内存,而为了提高存储效率以满足分布式仿真试验要求,往往会采取多线程并行方式,这就导致了申请内存的生命周期、字段长度、释放时机等都不等同、不确定,这样混乱的内存申请易形成大量的内存碎片。同时,仿真试验往往持续时间较长,这样就对记录回放软件提出了长续航要求,在长续航状态下内存碎片问题发生累计,就容易出现内存容量充足但是连续内存块不足情况,进而潜伏内存申请失败,工具软件崩溃的问题。
有鉴于此,本发明的一个实施例提出了一种用于处理记录回放软件内存碎片的方法,该方法包括优化内存池内存管理方式和限制等量内存申请长度。
具体的,如图1所示,本实施例公布了一种应对记录回放内存碎片问题的处理方法,主要通过两个方式处理内存碎片造成的隐患,一是内存池优化内存管理方式;二是限制等量的内存申请长度。
本实施例通过内存池优化内存管理方式与限制等量内存申请长度两种方式的配合,针对内存碎片出现的原因进行了优化设计,有效解决了因内存碎片而导致的连续内存块不足情况和内存申请失败问题,在长续航LVC仿真试验过程中,本实施例所能取得的效果更佳。
在一种可能的实现方式中,所述内存池为链表结构,所述链表结构包括链表头节点结构和多个链表节点结构体;其中,所述链表头节点结构包括内存节点数量、所申请内存条首地址以及链表下一节点地址;所述链表节点结构体包括内存块空余大小、所映射内存块首地址、剩余内存块映射首地址以及链表下一节点地址。
具体的,如图2所示,所设计内存池为链表结构,链表头节点结构分为三部分,分别是内存节点数量、所申请内存条首地址以及链表下一节点地址;链表节点结构体分为四部分,分别是内存块空余大小、所映射内存块首地址、剩余内存块映射首地址以及链表下一节点地址。
在一种可能的实现方式中,所述所申请内存条首地址指向所述内存池所申请的连续内存空间首地址;所述所映射内存块首地址指向被划分后的内存块空间首地址;所述剩余内存块映射首地址指向内存块空余空间首地址。
具体的,内存条首地址指向的是内存池所申请的连续内存空间;内存块首地址指向的是被划分后的内存块空间首地址,剩余内存块映射首地址指向内存块空余空间的首地址。
在一种可能的实现方式中,当所述内存块为空时,所述所申请内存条首地址和所述所映射内存块首地址指向相同内存地址。
具体的,当内存块为空时,两个地址指向相同内存地址。
在一种可能的实现方式中,所述优化内存池内存管理方式包括在初始化内存池时,所述内存池根据输入申请内存条总长度的内存空间和输入内存块最大长度,将所述内存空间等量划分为多个内存块后生成所述链表结构;在仿真试验过程中,将待记录的过程数据根据数据量大小向所述内存池申请所需内存空间;所述内存池遍历所述链表结构,并根据当前节点的所述内存块空余大小分配空余内存块内存空间;当所述所需内存空间大于所述空余内存块内存空间时,将所述空余内存块内存空间全部分配并遍历到下一个节点。
在一种可能的实现方式中,所述优化内存池内存管理方式还包括当所述所需内存空间小于所述空余内存块内存空间时,顺序分配所述空余内存块内存空间,并将所述剩余内存块映射首地址修改为所述空余内存块内存空间首地址;在所述顺序分配完成后,更新所述内存块空余大小的数值并返回存储数据段的首地址及大小;在内存释放时,跟据所述存储数据段首地址及大小寻找并释放内存,并修改所述剩余内存块映射首地址及所述内存块空余大小。
具体的,如图3所示,初始化内存池时,内存池根据输入申请内存条总长度的内存空间,再根据输入内存块最大长度将所申请内存空间等量划分为多个内存块,形成二维链表结构,仿真试验过程中需要记录的过程数据依据自身数据量大小向内存池申请内存空间,内存池顺序遍历链表,依据节点的内存块空余大小分配空间,当所需空间大于空余内存块内存空间时,将内存块全部分配并继续遍历到下一个,当所需空间小于空余内存块内存空间时,顺序分配内存块空间,并将剩余内存块映射首地址改为剩余内存块内存空间的首地址,分配完成后更新内存块空余大小的数值并返回存储数据段的首地址及大小,内存释放时,依据存储数据段首地址及大小找到并释放内存,同步修改剩余内存块映射首地址及内存块空余大小。
在一种可能的实现方式中,所述限制等量内存申请长度包括在设计仿真系统时,根据所述过程数据的数据字段平均大小,设计内存申请长度,并将所述内存申请长度或所述内存申请长度的整数分之一长度设置为所述内存池划分内存块的最大长度。
具体的,由于内存碎片的产生实际发生在连续内存的不等量分配与前段内存的释放过程中,当每次申请的内存长度与释放的内存长度相等时,就可以避免被释放的内存无法被重新申请,可以从原理上有效减少内存碎片的产生。
进一步的,限制等量的内存申请长度同样由两个方面组成,一是在设计仿真系统初期,根据对仿真过程数据的数据字段平均大小进行预估,设计一个接近于过程数据字段平均大小的内存申请长度,并将该长度或该长度的整数分之一定为内存池划分内存块的最大长度。
本实施例可以最大限度的保证内存块空间被充分合理使用,减少内存碎片的产生。
在一种可能的实现方式中,所述限制等量内存申请长度还包括当记录数据量达到内存块长度或所述内存块长度的整数倍时,释放内存并写入文件;在记录结束后,通过对所有所述文件跟据时间顺序进行拼接得到记录数据包。
具体的,二是在将内存池中缓存释放,将所记录数据存储到本地文件时,设计释放时机为当记录数据量到达内存块长度或其整数倍长度时,执行内存释放,并写入文件,再通过记录结束后对所有记录文件依据时间顺序拼接的方式,得到完整的记录数据包。
本实施例可以保证每次释放的内存池空间都为内存块空间的整数倍,避免出现因内存块内频繁的地址遍历而造成的效率损失,从而提高效率。
在一种可能的实现方式中,所述限制等量内存申请长度可以为后期配置项。
具体的,为适应仿真试验的变化,这个内存申请长度设计为可后期配置项,根据实际仿真试验中过程数据的大小,修改记录回放软件的配置项,以使得内存申请长度符合试验场景的变化。
本实施例所设计的内存池结构,以及内存池运行逻辑,能够实现内存管理方式的优化;所设计使用限制内存申请长度的方法,从内存碎片的原理上着手,减少内存碎片的产生,并将该内存申请长度设计为可配置项,以满足不同试验条件下的过程数据大小;本实施例将两项设计的改进策略进行结合,并在内存池结构设计中体现,通过两种策略的配合使得内存碎片处理效果变得更佳;并设计实施过程与两种策略配合的使用流程。
如图4所示,适于用来实现上述实施例提供的一种用于处理记录回放软件内存碎片的方法的计算机系统,包括中央处理模块(CPU),其可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有计算机系统操作所需的各种程序和数据。CPU、ROM以及RAM通过总线被此相连。输入/输入(I/O)接口也连接至总线。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
特别地,根据本实施例,上文流程图描述的过程可以被实现为计算机软件程序。例如,本实施例包括一种计算机程序产品,其包括有形地包含在计算机可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
附图中的流程图和示意图,图示了本实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或示意图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,示意图和/或流程图中的每个方框、以及示意和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器,包括优化内存池内存管理模块和限制等量内存申请长度模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本实施例还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中上述装置中所包含的非易失性计算机存储介质,也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当上述一个或者多个程序被一个设备执行时,使得上述设备:优化内存池内存管理方式和限制等量内存申请长度。
在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
还需要说明的是,在本发明的描述中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于本领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (10)
1.一种用于处理记录回放软件内存碎片的方法,适用于LVC仿真试验中,其特征在于,该方法包括优化内存池内存管理方式和限制等量内存申请长度。
2.根据权利要求1所述的用于处理记录回放软件内存碎片的方法,其特征在于,
所述内存池为链表结构,所述链表结构包括链表头节点结构和多个链表节点结构体;其中,
所述链表头节点结构包括内存节点数量、所申请内存条首地址以及链表下一节点地址;
所述链表节点结构体包括内存块空余大小、所映射内存块首地址、剩余内存块映射首地址以及链表下一节点地址。
3.根据权利要求2所述的用于处理记录回放软件内存碎片的方法,其特征在于,
所述所申请内存条首地址指向所述内存池所申请的连续内存空间首地址;所述所映射内存块首地址指向被划分后的内存块空间首地址;所述剩余内存块映射首地址指向内存块空余空间首地址;其中
当所述内存块为空时,所述所申请内存条首地址和所述所映射内存块首地址指向相同内存地址。
4.根据权利要求3所述的用于处理记录回放软件内存碎片的方法,其特征在于,所述优化内存池内存管理方式包括
在初始化内存池时,所述内存池根据输入申请内存条总长度的内存空间和输入内存块最大长度,将所述内存空间等量划分为多个内存块后生成所述链表结构;
在仿真试验过程中,将待记录的过程数据根据数据量大小向所述内存池申请所需内存空间;
所述内存池遍历所述链表结构,并根据当前节点的所述内存块空余大小分配空余内存块内存空间;
当所述所需内存空间大于所述空余内存块内存空间时,将所述空余内存块内存空间全部分配并遍历到下一个节点。
5.根据权利要求4所述的用于处理记录回放软件内存碎片的方法,其特征在于,所述优化内存池内存管理方式还包括
当所述所需内存空间小于所述空余内存块内存空间时,顺序分配所述空余内存块内存空间,并将所述剩余内存块映射首地址修改为所述空余内存块内存空间首地址;
在所述顺序分配完成后,更新所述内存块空余大小的数值并返回存储数据段的首地址及大小;
在内存释放时,跟据所述存储数据段首地址及大小寻找并释放内存,并修改所述剩余内存块映射首地址及所述内存块空余大小。
6.根据权利要求5所述的用于处理记录回放软件内存碎片的方法,其特征在于,所述限制等量内存申请长度包括
在设计仿真系统时,根据所述过程数据的数据字段平均大小,设计内存申请长度,并将所述内存申请长度或所述内存申请长度的整数分之一长度设置为所述内存池划分内存块的最大长度。
7.根据权利要求6所述的用于处理记录回放软件内存碎片的方法,其特征在于,所述限制等量内存申请长度还包括
当记录数据量达到内存块长度或所述内存块长度的整数倍时,释放内存并写入文件;
在记录结束后,通过对所有所述文件跟据时间顺序进行拼接得到记录数据包。
8.根据权利要求7所述的用于处理记录回放软件内存碎片的方法,其特征在于,
所述限制等量内存申请长度为后期配置项。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310317373.0A CN116594919A (zh) | 2023-03-27 | 2023-03-27 | 一种用于处理内存碎片的方法、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310317373.0A CN116594919A (zh) | 2023-03-27 | 2023-03-27 | 一种用于处理内存碎片的方法、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594919A true CN116594919A (zh) | 2023-08-15 |
Family
ID=87594416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310317373.0A Pending CN116594919A (zh) | 2023-03-27 | 2023-03-27 | 一种用于处理内存碎片的方法、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594919A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955219A (zh) * | 2023-09-13 | 2023-10-27 | 新华三信息技术有限公司 | 一种数据镜像方法、装置、主机及存储介质 |
-
2023
- 2023-03-27 CN CN202310317373.0A patent/CN116594919A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955219A (zh) * | 2023-09-13 | 2023-10-27 | 新华三信息技术有限公司 | 一种数据镜像方法、装置、主机及存储介质 |
CN116955219B (zh) * | 2023-09-13 | 2024-01-19 | 新华三信息技术有限公司 | 一种数据镜像方法、装置、主机及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8615640B2 (en) | System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller | |
US9652382B1 (en) | Look-ahead garbage collection for NAND flash based storage | |
CN107066498B (zh) | 键值kv存储方法和装置 | |
KR20070060070A (ko) | 최적화된 순차적인 클러스터 관리용 에프에이티 분석 | |
CN106339324B (zh) | 一种选择垃圾回收块的方法及装置 | |
CN110147204B (zh) | 一种元数据落盘方法、装置、系统及计算机可读存储介质 | |
KR20070003579A (ko) | 플래시형 매체에 트랜잭션 레코드를 저장하는 파일 시스템 | |
CN102203717A (zh) | 固态驱动器优化器 | |
CN103577513A (zh) | 藉延迟节点实例化以缓存xml信息集的系统和/或方法 | |
CN110377529A (zh) | 一种全闪存储系统数据管理的方法、装置以及设备 | |
CN116594919A (zh) | 一种用于处理内存碎片的方法、计算机设备及介质 | |
CN109213450A (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN107329909B (zh) | 一种数据管理方法及装置 | |
CN108984104A (zh) | 用于缓存管理的方法和设备 | |
CN107844436B (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
KR20110046118A (ko) | 적응적 로깅 장치 및 방법 | |
CN109086462A (zh) | 一种分布式文件系统中元数据的管理方法 | |
EP4185963B1 (en) | Zone hints for zoned namespace storage devices | |
US20220129174A1 (en) | Method, device and computer program product for storage management | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
US7080206B2 (en) | System and method for adaptively loading input data into a multi-dimensional clustering table | |
CN105045891A (zh) | 提高顺序表性能方法、系统、架构、优化方法及存储装置 | |
CN105808451A (zh) | 一种数据缓存方法以及相关装置 | |
US20110153674A1 (en) | Data storage including storing of page identity and logical relationships between pages | |
CN104133970A (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 |