CN117009090B - 设计层次树子结点信息存储方法、电子设备和介质 - Google Patents
设计层次树子结点信息存储方法、电子设备和介质 Download PDFInfo
- Publication number
- CN117009090B CN117009090B CN202311269276.5A CN202311269276A CN117009090B CN 117009090 B CN117009090 B CN 117009090B CN 202311269276 A CN202311269276 A CN 202311269276A CN 117009090 B CN117009090 B CN 117009090B
- Authority
- CN
- China
- Prior art keywords
- sub
- node information
- pointer
- size
- memory
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013461 design Methods 0.000 title claims abstract description 27
- 238000010276 construction Methods 0.000 claims abstract description 4
- 101150064138 MAP1 gene Proteins 0.000 claims description 20
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 101100075995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fma2 gene Proteins 0.000 claims description 2
- 229920000609 methyl cellulose Polymers 0.000 description 32
- 239000001923 methylcellulose Substances 0.000 description 32
- 235000010981 methylcellulose Nutrition 0.000 description 32
- 230000008569 process Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 244000005700 microbiome Species 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241000170489 Upis Species 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- 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)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及芯片技术领域,尤其涉及一种设计层次树子结点信息存储方法、电子设备和介质,步骤S1、在内存中为设计层次树的非叶子结点Ai构建Di;步骤S2、当需要向Di中插入子结点信息时,判断P1i和P2i是否有效,若P1i有效,则执行步骤S3,若P2i有效,则执行S6;步骤S3、将子结点信息插入Vi中,更新Ui,执行S4;步骤S4、若Ui=R,则执行步骤S5,否则,返回S2;步骤S5、将Vi中存储的子结点信息复制到Ki中,释放Vi,将P1i设置为空指针,将P2i设置为有效状态且指向Ki,返回S2;步骤S6、将子结点信息插入Ki中,返回执行S2。本发明降低了设计层次树结点信息存储的内存使用量。
Description
技术领域
本发明涉及芯片技术领域,尤其涉及一种设计层次树子结点信息存储方法、电子设备和介质。
背景技术
在芯片设计验证调试软件流程中,需要展示用户设计的模块实例化设计层次树。层次树从最顶层的模块开始构建,把最顶层的模块作为树的根结点。顶层模块中实例化的所有模块实例会作为顶层模块的子结点展示,这些子结点本身又是从其他模块实例化而来的,因此它们本身又包含了其他实例化的实例作为它们的子结点。这个过程递归进行直到叶子结点为止。叶子结点就是实例的模块里面没有再包含对其他模块的实例化,通常是原始单元(priKitive cell)或者空模块。上述过程构建的整棵树称为设计层次树。为了支持通过一个给定的模块实例化名字快速定位到一个结点的子结点,通常会采用一个有序的映射表(map)来存储所有结点的名字和结点本身的信息。这样不但可以保证子结点的生成顺序,还可以通过子结点的实例名字快速的查找到子结点,从而获取更多信息或者选中这个子结点。
但是,在真实的设计中,每个结点的子结点数目可能存在很大差异,例如有些结点可能包含十万个以上的子结点,而有的结点可能只包含数个或者数十个子结点。上述的使用有序的map来存储所有的子结点信息的方案对子结点数比较少的结点会造成大量的内存浪费。因为有序的map需要额外的内存来管理和存储信息,当里面存储的子结点数太少时,额外花费的内存占比过高,从而造成内存的浪费。
发明内容
本发明目的在于,提供一种设计层次树子结点信息存储方法、电子设备和介质,降低了设计层次树结点信息存储的内存使用量。
根据本发明第一方面,提供了一种设计层次树子结点信息存储方法,包括:
步骤S1、在内存中为设计层次树的非叶子结点Ai构建动态数据结构Di,Di包括有序map结构Ki、动态数组结构Vi、第一指针P1i和第二指针P2i,Vi中对应的已存入子结点信息数为Ui;在初始状态下,Ki和Vi均为空,P1i设置为有效状态且指向Vi,P2i设置为空指针,Ui=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数;
步骤S2、当需要向Di中插入子结点信息时,判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S3,若P2i为有效状态,则执行步骤S6;
步骤S3、将子结点信息插入Vi中,更新Ui,执行步骤S4;
步骤S4、若Ui=R,R为预设的动态数组存储数量阈值,则执行步骤S5,否则,返回执行步骤S2;
步骤S5、将Vi中存储的子结点信息复制到Ki中,释放Vi,将P1i设置为空指针,将P2i设置为有效状态且指向Ki,返回执行步骤S2;
步骤S6、将子结点信息插入Ki中,返回执行步骤S2。
根据本发明第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明第一方面所述的方法。
根据本发明第三方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明第一方面所述的方法。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种设计层次树子结点信息存储方法、电子设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明通过动态自适应的机制来存储设计层次树的子结点信息,根据子结点信息的数量切换不同的存储模式,在保持快速查找性能的同时降低了设计层次树结点信息存储的内存的使用量,提升了系统性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的设计层次树子结点信息存储方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种设计层次树子结点信息存储方法,如图1所示,包括:
步骤S1、在内存中为设计层次树的非叶子结点Ai构建动态数据结构Di,Di包括有序map结构Ki、动态数组结构Vi、第一指针P1i和第二指针P2i,Vi中对应的已存入子结点信息数为Ui;在初始状态下,Ki和Vi均为空,P1i设置为有效状态且指向Vi,P2i设置为空指针,Ui=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数。
需要说明的是,现有的有序map结构和动态数组结构均落入本发明保护范围之内,有序map结构包括哈希表和用于存储子结点信息插入顺序的数组,有序map结构和动态数组结构的结构细节在此不再赘述。
步骤S2、当需要向Di中插入子结点信息时,判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S3,若P2i为有效状态,则执行步骤S6。
需要说明的是,同一时刻,第一指针P1i和第二指针P2i仅有一个为有效状态,通过判断P1i和P2i中哪一指针为有效状态确定要插入的存储结构。
步骤S3、将子结点信息插入Vi中,更新Ui,执行步骤S4。
步骤S4、若Ui=R,R为预设的动态数组存储数量阈值,则执行步骤S5,否则,返回执行步骤S2。
步骤S5、将Vi中存储的子结点信息复制到Ki中,释放Vi,将P1i设置为空指针,将P2i设置为有效状态且指向Ki,返回执行步骤S2。
需要说明的是,采用有序map结构存储子结点信息需要额外的内存来管理和存储信息,如果子结点数量过少,会导致花费的内存占比过高,从而造成内存的浪费,因此,本发明实施例通过步骤S4和步骤S5,实现态数据结构中有序map结构Ki和动态数组结构Vi的切换,使得当子结点数量小于等于动态数组存储数量阈值时,基于动态数组结构Vi来存储子结点信息,当子结点数量大于动态数组存储数量阈值时,基于有序map结构Ki来存储子结点信息。动态数组结构Vi需要额外的内存是远小于有序map结构存储子结点信息需要额外的内存的。
步骤S6、将子结点信息插入Ki中,返回执行步骤S2。
作为一种实施例,所述步骤S3包括:
步骤S31、判断待插入子结点信息是否已经存储在Vi中,若是,则执行步骤S32,否则,执行步骤S33。
其中,为了避免重复插入子结点信息,在每次向Vi中插入子结点信息之前,需要先判断待插入子结点信息是否已经存储在Vi中。
步骤S32、不再将待插入子结点信息插入Vi中,保持当前Ui不变,直接执行步骤S2。
步骤S33、将待插入子结点信息插入Vi中,更新Ui=Ui+1,执行步骤S4。
作为一种实施例,所述步骤S6包括:
步骤S61、判断待插入子结点信息是否已经存储在Ki中,若是,则直接返回执行步骤S2,否则,执行步骤S62。
其中,为了避免重复插入子结点信息,在每次向Ki中插入子结点信息之前,需要先判断待插入子结点信息是否已经存储在Ki中。
步骤S62、将子结点信息插入Ki中,返回执行步骤S2。
作为一种实施例,子结点信息包括指针对(key, Value),key为指向子结点标识的指针,Value为指向子结点详细信息的指针,优选的,指向子结点标识的指针和指向子结点详细信息的指针的大小相等。
需要说明的是,有序map结构Ki和动态数组结构Vi之间的切换是在构建动态数据结构Di内部实现,用户无感知,且在Di内部仅需设置一个预设的删除接口和一个预设的查找接口,即可实现节点信息的删除和查找,无需重新修改设置预设的删除接口和预设的查找接口的代码,原始的设置预设的删除接口和预设的查找接口的代码可以直接复用。
作为一种实施例,所述方法还包括:
步骤S01、获取删除目标子结点指令,解析得到目标删除key。
步骤S02、判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S03,若P2i为有效状态,则执行步骤S04。
步骤S03、调用预设的删除接口,将Vi中目标删除key对应的子结点信息删除,更新Ui=Ui-1。
步骤S04、调用预设的删除接口,将Ki中目标删除key对应的子结点信息删除。
需要说明的是,无论当前有效的是Vi还是Ki,均可通过调用预设的删除接口实现子结点信息删除。
作为一种实施例,所述方法还包括:
步骤S10、获取查找目标子结点指令,解析得到目标查找key。
步骤S20、判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S30,若P2i为有效状态,则执行步骤S40。
步骤S30、调用预设的查找接口,在Vi中进行查找,获取目标查找key对应的目标查找Value。
步骤S40、调用预设的查找接口,在Ki中进行查找,获取目标查找key对应的目标查找Value。
需要说明的是,无论当前有效的是Vi还是Ki,均可通过调用预设的查找接口实现子结点信息查找。
预设的动态数组存储数量阈值R的选取决定了动态数据结构的内存和性能开销特性。
当R设置为0时,动态数据结构在插入第一个元素时就会有序map结构 也就是动态数据结构会完全等价于一个有序map结构。所有子结点信息的插入、删除操作都会是O(1)时间复杂度,但是额外内存开销较大,随着插入子结点信息数量增多,额外内存消耗不断增加。
当R设置为大于程序运行中插入动态数据结构中所有元素的上限时,所有元素都会被插入动态数组结构中,也就是有序map不会被构造。这种情况动态数据结构完全等价于一个动态数组结构。所有子结点信息的插入,删除操作会是O(size)复杂度,size为子结点数量,但是额外内存开销是O(1),不会随着插入子结点信息数量增多,额外内存消耗增加,增加的只是存储元素自身需要的内存。
为了实现性能和内存均衡,作为一种实施例,R为[R1,R2]中的一个值,[R1,R2]为能够实现性能和内存均衡的动态数组存储数量阈值取值范围,所述方法还包括步骤S100、获取动态数组存储数量阈值取值范围 [R1,R2]。
所述步骤S100包括:
步骤S101、获取Ki对应的管理有序map结构所需内存EMK和存储子结点信息所需内存EK。
可以理解的是,EMK和EK的和为Ki对应的总内存。
步骤S102、基于EMK和EK确定Ki对应的内存代价MCK,MCK=EMK/EK。
步骤S103、基于MCK=EMK/EK确定MCK的取值范围[MCK min,MCK max]。
步骤S104、获取Vi对应的管理动态数组结构所需内存EMV和存储子结点信息所需内存EV。
可以理解的是,EMV和EV为Vi对应的总内存。
步骤S105、基于EMV和EV确定Vi对应的内存代价MCV,MCV=EMV/EV。
步骤S106、基于预设的平衡点比例值H、[MCK min,MCK max]、MCV=EMV/EV构建算式:
H×MCK min≤MCV=EMV/EV≤H×MCK max。
需要说明的是,H的具体取值根据具体应用需要确定,作为一种示例,H可取5%。
步骤S107、基于H×MCK min≤MCV=EMV/EV≤H×MCK max确定动态数组存储数量阈值取值范围 [R1,R2]。
作为一种实施例,所述步骤S101中:
EMK=[a×size(map1)]/load_factor(map1)+ size(map2)×b, EK=size(map1)×b。
其中,有序map结构包括哈希表和用于存储子结点信息插入顺序的数组,size(map1)为map结构中哈希表中所存储的子结点信息数量,size(map2) 为map结构的数组所存储的元素数量,size(map1)的值与size(map2)的值相等,a为哈希表中解决冲突所使用的链表的next指针大小,b为指针对(key, Value)的大小,load_factor(map1)为哈希表的负载系数,load_factor(map1)的取值范围为[0.4375,0.875]。作为示例,在64位的计算机上,通常将每一指针设置为占据64位(bit),即为8个字节(byte),因此,指针对(key, Value)占据16个字节,基于此,a的取值为8,b的取值为16。
所述步骤S102中,MCK=EMK/EK=[a/load_factor(map1)+ b]/b。
所述步骤S103中,将load_factor(map1)的取值范围为[0.4375,0.875]代入[a/load_factor(map1)+ b]/b得到:MCK min=[a/0.875+b]/b,MCK max=[a/0.4375+ b]/b。
所述步骤S104中: EMV=c×3,其中,c为Vi中管理指针大小,所述管理指针包括头指针、尾指针和地址结束指针;EMV不会随着Vi中子结点信息数量增加而变化。作为示例,在64位的计算机上,c的取值也为8。
EV=size(vector)×b,其中,size(vector)为建动态数据结构中所存储的子结点信息数量。
所述步骤S105中,MCV=EMV/EV= (c×3)/size(vector)×b,由此可知,意味随着子结点信息数量的增加,Vi对应的内存代价MCV成比例减少。MCV max=(c×3)/b,。
以b=16,c=8为例,可以得到MCK min=1.57,MCK max=2.14,需要说明的是MCK min,MCK max均只保留了两位小数。MCV max=1.5,MCV min=0。由此可知,Vi的内存代价明显低于Ki的内存代价,但是为了性能考虑,不能让size(vector)无限大而得到非常小的内存代价,因为Vi在元素大的时候,查找性能会变差,综合内和性能的要求,平衡点可以设置为Vi的内存代价为Ki的内存代价乘以H。
所述步骤S106中,构建算式为:H×[a/0.875+b]/b≤(c×3)/size(vector)×b≤H×[a/0.4375+b]/b,由此得到(c×3)/H×[a/0.4375+b]≤size(vector)≤(c×3)/H×[a/0.875+b],将动态数组存储数量阈值取值范围 [R1,R2]确定为[(c×3)/H×[a/0.4375+b],(c×3)/H×[a/0.875+b]]。以b=16,c=8,H=5%为例,可以得到14≤size(vector)≤19。由此可知,当R在[14,19]范围内时,Vi的查找删除性能和Ki相当,且使用的内存量少,构造和销毁动态数据的效率也更高。优选的,R取值为(c×3)/H×[a/0.875+b],本示例中(c×3)/H×[a/0.875+b]=19。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明实施例所述的方法。
本发明实施例态自适应的机制来存储设计层次树的子结点信息,根据子结点信息的数量切换不同的存储模式,在保持快速查找性能的同时降低了设计层次树结点信息存储的内存的使用量,提升了系统性能。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (9)
1.一种设计层次树子结点信息存储方法,其特征在于,包括:
步骤S1、在内存中为设计层次树的非叶子结点Ai构建动态数据结构Di,Di包括有序map结构Ki、动态数组结构Vi、第一指针P1i和第二指针P2i,Vi中对应的已存入子结点信息数为Ui;在初始状态下,Ki和Vi均为空,P1i设置为有效状态且指向Vi,P2i设置为空指针,Ui=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数;
步骤S2、当需要向Di中插入子结点信息时,判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S3,若P2i为有效状态,则执行步骤S6;
步骤S3、将子结点信息插入Vi中,更新Ui,执行步骤S4;
步骤S4、若Ui=R,R为预设的动态数组存储数量阈值,则执行步骤S5,否则,返回执行步骤S2;
步骤S5、将Vi中存储的子结点信息复制到Ki中,释放Vi,将P1i设置为空指针,将P2i设置为有效状态且指向Ki,返回执行步骤S2;
步骤S6、将子结点信息插入Ki中,返回执行步骤S2;
R为[R1,R2]中的一个值,[R1,R2]为能够实现性能和内存均衡的动态数组存储数量阈值取值范围,所述方法还包括步骤S100、获取动态数组存储数量阈值取值范围[R1,R2];
所述步骤S100包括:
步骤S101、获取Ki对应的管理有序map结构所需内存EMK和存储子结点信息所需内存EK;
步骤S102、基于EMK和EK确定Ki对应的内存代价MCK,MCK=EMK/EK;
步骤S103、基于MCK=EMK/EK确定MCK的取值范围[MCK min,MCK max];
步骤S104、获取Vi对应的管理动态数组结构所需内存EMV和存储子结点信息所需内存EV;
步骤S105、基于EMV和EV确定Vi对应的内存代价MCV,MCV=EMV/EV;
步骤S106、基于预设的平衡点比例值H、[MCK min,MCK max]、MCV=EMV/EV构建算式:
H×MCK min≤MCV=EMV/EV≤H×MCK max;
步骤S107、基于H×MCK min≤MCV=EMV/EV≤H×MCK max确定动态数组存储数量阈值取值范围[R1,R2]。
2.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
步骤S31、判断待插入子结点信息是否已经存储在Vi中,若是,则执行步骤S32,否则,执行步骤S33;
步骤S32、不再将待插入子结点信息插入Vi中,保持当前Ui不变,直接执行步骤S2;
步骤S33、将待插入子结点信息插入Vi中,更新Ui=Ui+1,执行步骤S4。
3.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
所述步骤S6包括:
步骤S61、判断待插入子结点信息是否已经存储在Ki中,若是,则直接返回执行步骤S2,否则,执行步骤S62;
步骤S62、将子结点信息插入Ki中,返回执行步骤S2。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
子结点信息包括指针对(key, Value),key为指向子结点标识的指针,Value为指向子结点详细信息的指针。
5.根据权利要求4所述的方法,其特征在于,所述步骤S3包括:
所述方法还包括:
步骤S01、获取删除目标子结点指令,解析得到目标删除key;
步骤S02、判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S03,若P2i为有效状态,则执行步骤S04;
步骤S03、调用预设的删除接口,将Vi中目标删除key对应的子结点信息删除,更新Ui=Ui-1;
步骤S04、调用预设的删除接口,将Ki中目标删除key对应的子结点信息删除。
6.根据权利要求4所述的方法,其特征在于,所述步骤S3包括:
所述方法还包括:
步骤S10、获取查找目标子结点指令,解析得到目标查找key;
步骤S20、判断P1i和P2i中哪一指针为有效状态,若P1i为有效状态,则执行步骤S30,若P2i为有效状态,则执行步骤S40;
步骤S30、调用预设的查找接口,在Vi中进行查找,获取目标查找key对应的目标查找Value;
步骤S40、调用预设的查找接口,在Ki中进行查找,获取目标查找key对应的目标查找Value。
7.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
所述步骤S101中:
EMK=[a×size(map1)]/load_factor(map1)+size(map2)×b,
其中,有序map结构包括哈希表和用于存储子结点信息插入顺序的数组,size(map1)为map结构中哈希表中所存储的子结点信息数量,size(map2) 为map结构的数组所存储的元素数量,size(map1)的值与size(map2)的值相等,a为哈希表中解决冲突所使用的链表的next指针大小,b为指针对(key, Value)的大小,load_factor(map1)为哈希表的负载系数,load_factor(map1)的取值范围为[0.4375,0.875];
EK=size(map1)×b,
所述步骤S102中,MCK=EMK/EK=[a/load_factor(map1)+b]/b;
所述步骤S103中,将load_factor(map1)的取值范围为[0.4375,0.875]代入[a/load_factor(map1)+b]/b得到:
MCK min=[a/0.875+b]/b,MCK max=[a/0.4375+ b]/b;
所述步骤S104中:
EMV=c×3,其中,c为Vi中管理指针大小,所述管理指针包括头指针、尾指针和地址结束指针;
EV=size(vector)×b,其中,size(vector)为建动态数据结构中所存储的子结点信息数量;
所述步骤S105中,MCV=EMV/EV= (c×3)/size(vector)×b;
所述步骤S106中,构建算式为:H×[a/0.875+b]/b≤(c×3)/size(vector)×b≤H×[a/0.4375+b]/b,由此得到(c×3)/H×[a/0.4375+b]≤size(vector)≤(c×3)/H×[a/0.875+b],将动态数组存储数量阈值取值范围[R1,R2]确定为[(c×3)/H×[a/0.4375+b],(c×3)/H×[a/0.875+b]]。
8.一种电子设备,其特征在于,包括:
至少一个处理器;
以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行前述权利要求1-7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311269276.5A CN117009090B (zh) | 2023-09-28 | 2023-09-28 | 设计层次树子结点信息存储方法、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311269276.5A CN117009090B (zh) | 2023-09-28 | 2023-09-28 | 设计层次树子结点信息存储方法、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117009090A CN117009090A (zh) | 2023-11-07 |
CN117009090B true CN117009090B (zh) | 2023-12-15 |
Family
ID=88571285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311269276.5A Active CN117009090B (zh) | 2023-09-28 | 2023-09-28 | 设计层次树子结点信息存储方法、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009090B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5740440A (en) * | 1995-01-06 | 1998-04-14 | Objective Software Technology | Dynamic object visualization and browsing system |
CN104424222A (zh) * | 2013-08-23 | 2015-03-18 | 华为技术有限公司 | 数据库索引方法及装置 |
CN110188108A (zh) * | 2019-06-10 | 2019-08-30 | 北京平凯星辰科技发展有限公司 | 数据存储方法、装置、系统、计算机设备及存储介质 |
CN115455871A (zh) * | 2022-11-10 | 2022-12-09 | 北京云枢创新软件技术有限公司 | 大规模集成电路层次树展示系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078394B2 (en) * | 2008-02-26 | 2011-12-13 | Microsoft Corp. | Indexing large-scale GPS tracks |
WO2010125574A1 (en) * | 2009-04-27 | 2010-11-04 | Kamlesh Gandhi | Description |
-
2023
- 2023-09-28 CN CN202311269276.5A patent/CN117009090B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5740440A (en) * | 1995-01-06 | 1998-04-14 | Objective Software Technology | Dynamic object visualization and browsing system |
CN104424222A (zh) * | 2013-08-23 | 2015-03-18 | 华为技术有限公司 | 数据库索引方法及装置 |
CN110188108A (zh) * | 2019-06-10 | 2019-08-30 | 北京平凯星辰科技发展有限公司 | 数据存储方法、装置、系统、计算机设备及存储介质 |
CN115455871A (zh) * | 2022-11-10 | 2022-12-09 | 北京云枢创新软件技术有限公司 | 大规模集成电路层次树展示系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117009090A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A wait-free queue as fast as fetch-and-add | |
JP3984659B2 (ja) | 概要カタログ | |
US7194492B2 (en) | Method and apparatus for efficiently copying distributed data files | |
KR101367450B1 (ko) | 멀티 스레드 어플리케이션을 위한 해시 테이블의 동시 리해싱의 수행 | |
JP2007531114A (ja) | メモリ割り当てのためのフックした複製値を有するバイナリサーチツリー | |
TWI570559B (zh) | 快閃記憶體及其存取方法 | |
CN106095698A (zh) | 面向对象的缓存写入、读取方法及装置 | |
US20140115291A1 (en) | Numa optimization for garbage collection of multi-threaded applications | |
CN113506364A (zh) | 模型创建方法、系统、设备及存储介质 | |
JP2005063449A (ja) | オブジェクトからオブジェクトへのJavaネイティブインタフェースマッピングの方法及び装置 | |
CN110399333A (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN111259003B (zh) | 一种数据库建立方法及装置 | |
CN113703777B (zh) | 基于数据库表的代码生成方法、装置、存储介质和设备 | |
CN117009090B (zh) | 设计层次树子结点信息存储方法、电子设备和介质 | |
JP2001527240A (ja) | データ構造内の管理 | |
CN112835638A (zh) | 一种基于嵌入式应用程序的配置信息管理方法及装置 | |
US8019789B2 (en) | System and method of object-oriented persistence | |
CN113641872B (zh) | 一种散列方法、装置、设备及介质 | |
CN113986775B (zh) | 一种risc-v cpu验证中页表项生成方法、系统及装置 | |
CN115687474A (zh) | 一种面向PoW区块链的跨链验证系统 | |
CN113344548B (zh) | 一种工作流生成方法、装置、设备及存储介质 | |
US20060265448A1 (en) | Container-level transaction management system and method therefor | |
US20210073176A1 (en) | Method, device, and computer program product for managing index of storage system | |
US6889303B2 (en) | Method and apparatus for distinguishing reachable objects and non-reachable objects in an object-based application | |
CN116954622B (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 |