CN113742080B - 一种高效的不可变对象执行环境的构建方法及装置 - Google Patents
一种高效的不可变对象执行环境的构建方法及装置 Download PDFInfo
- Publication number
- CN113742080B CN113742080B CN202111064350.0A CN202111064350A CN113742080B CN 113742080 B CN113742080 B CN 113742080B CN 202111064350 A CN202111064350 A CN 202111064350A CN 113742080 B CN113742080 B CN 113742080B
- Authority
- CN
- China
- Prior art keywords
- variable
- variables
- affinity
- time sequence
- nodes
- 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 description 15
- 238000004040 coloring Methods 0.000 claims description 41
- 238000004458 analytical method Methods 0.000 claims description 32
- 238000005457 optimization Methods 0.000 claims description 17
- 230000000875 corresponding effect Effects 0.000 claims description 8
- 239000003086 colorant Substances 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 7
- 238000010186 staining Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 8
- 230000002860 competitive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000010076 replication Effects 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种高效的不可变对象执行环境的构建方法及装置,通过不可变对象执行环境的构建方法步骤,对变量的内存进行分配,使存在亲和度关系的同一颜色组下的相邻时序变量之间重用内存块,通过分析可释放的对象和后继的需创建的对象之间的属性相似性,令两个对象公用内存空间,减少占用的处理器和内存资源。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种高效的不可变对象执行环境的构建方法及装置。
背景技术
据统计,史上重大bug导致的经济损失已超过10000亿美元,其中最难发现的bug是竞争冒险(race hazard)bug,又名竞态条件、竞争条件。现在软件越来越多的使用多线程技术来实现并发并行,导致竞争冒险类bug也发生得越来越多。
所以新编程语言往往采用不可变的语义(Environment for Immutability),不可变的语义又被称为不可变的环境、不可变对象的编程环境,下文简称之为 EIMM。在EIMM的约束下,从源头上就根绝了竞争冒险类bug的产生。具体来说,不可变语义有如下特征:
程序员不再需要关心区分值语义和引用语义,全都按照值语义理解,简化了编程的心智负担,编译器可以选用性能最好的解释;EIMM中,不会形成环引用,可以简化引用计数或者GC等内存管理的实现;程序员不用考虑对象被其他线程改变的情况,所以不可变语义天然对并发并行程序友好,容易编写和理解。
但是现有EIMM还存在一类性能问题,其中由于值语义需要进行成员复制,如果不作优化,会需要大量的内存重分配,占用不少的处理器和内存资源。
本发明旨在解决以上问题,优化不可变对象环境的性能。
发明内容
本发明的目的是解决现有技术的不足,提供一种高效的不可变对象执行环境的构建方法及装置。
为了解决上述问题,本发明采用如下技术方案:
一种高效的不可变对象执行环境的构建方法,包括如下步骤:
步骤1:对程序代码进行静态分析,获得变量之间的亲和度;
步骤2:通过亲和度分析的图着色算法,获得着色方案,并根据着色方案确定寄存器分配方案;
步骤3:确定着色方案后,把同颜色组的所有节点按时序排列,并对所有节点进行逃逸分析;其中节点表示变量;
步骤4:应用逃逸分析结果结合变量之间的亲和度以及着色方案,分配内存块。
进一步的,所述步骤1中,对程序代码进行静态分析过程中,首先需要计算出所有变量的生命期;其次建立变量间的生命周期关系图G(V,E),其中V表示顶点的集合,E表示边的集合,顶点表示变量的生命期,边表示两个变量的生命期存在重叠;最后判断任意两个存在边的变量之间的亲和度关系。
进一步的,所述变量之间的亲和度关系,包括如下几种不相交的情况:
情况一:两个变量类型相同且它们指向的都是带有若干属性的对象,并且则两个被变量指向的对象之间,除了1个属性外其他属性都相同,则认为这两个变量之间亲和度高;
情况二:对于不满足情况一的两个变量,如果两个变量的类型相同,则认为这两个变量之间亲和度中等;
情况三:对于不满足情况一和情况二的情形,如果两个变量的指向的内存大小属于同样的分配类,则认为它们之间亲和度低;
情况四:其他情况,认为两个变量之间无亲和度。
进一步的,所述步骤2中,分配寄存器包括如下步骤:
步骤21:将所有变量作为节点,并将所有变量按时序排列;
步骤22:根据图着色算法,构建多目标优化问题;其中多目标优化问题中包括目标和约束;
步骤23:通过优化算法,对多目标优化问题求解,得到满足约束的帕累托最优曲线;
步骤24:通过帕累托最优曲线,获得寄存器的分配方案。
进一步的,所述步骤22中,构建的多目标优化问题包括两个目标和两个约束,如下所示:
目标一:最小化Yj的和;
目标二:最大化着色方案的亲和度分值;
约束1:对任意边对应的两个节点{vi,vl},都有Xij+Xlj小于等于Yj;
约束2:对任意节点vi,有∑jXij=1;
其中,vi,vl表示节点,i和l表示时序编号,其中i表示时序为i的节点,l表示时序为l的节点;j表示j号颜色,j∈{1,2...};Yj表示j号颜色的着色运用情况,其中如果有任意节点采用j号颜色,则设定Yj为1,否则Yj为0;Xij表示节点vi和j号颜色的关系,若节点vi采用了j号颜色,则设定Xij为1,否则设定Xij为0,同理Xlj表示节点vl和j号颜色的关系。
进一步的,所述目标二中的亲和度分值与变量之间的亲和度呈正相关;着色方案的亲和度分值的计算包括如下步骤:
步骤221:将所有节点根据颜色进行分组,并将每组节点分别按时序进行排序;
步骤222:对于每组颜色中的节点,分别计算时序相邻的两个节点之前的亲和度分值,并求和,获得颜色组的亲和度分值;
步骤223:将每组颜色组的亲和度分值相加,获得着色方案的亲和度分值。
进一步的,所述步骤4中,分配内存块包括如下步骤:
步骤41:判断变量A和变量B在该寄存器对应的变量中是否时序相邻;若变量A和变量B时序相邻,则进入下一步;否则结束步骤;
步骤42:判断时序在前的变量A是否发生逃逸;若变量A没有发生逃逸,则进入下一步;否则减少变量A的引用次数或者释放变量A的内存块,并另外分配B需要的内存块,结束步骤;
步骤43:变量A没有发生逃逸,变量B根据与变量A的亲和度,对变量A 的内存资源进行分配重用,结束步骤。
进一步的,所述步骤43中内存资源的分配重用与亲和度的关系为:
若变量A和比变量B的亲和度高,则变量B重用变量A的内存块,并且在重用的内存块中覆写变量B指向的对象中区别于变量A指向的对象的属性;
若变量A和变量B的亲和度中等,则变量B重用变量A的内容块,并且在重用的内存块中覆写变量B指向的对象的所有属性;
若变量A和变量B的亲和度低,则变量B重用变量A的内存块,并且基于变量B对内存块的整体进行覆写;
若变量A和变量B无亲和度,则减少变量A的引用数或者释放变量A的内存块,并另外分配变量B需要的内存块。
一种不可变对象执行环境的构建装置,所述构建装置基于上述的方法,构建装置包括:
亲和度判断模块:判断变量之间的亲和度;
逃逸分析模块:用于对变量进行逃逸分析;
着色模块:对变量的节点进行着色分析,获得着色方案;
时序排序模块:将变量根据时序进行排列,即为变量第一次出现的码址进行排序;
内存分配模块:根据逃逸分析模块的逃逸分析结果,结合亲和度判断模块获得的亲和度以及着色模块获得的着色方案,分配变量的内存。
本发明的有益效果为:
通过不可变对象执行环境的构建方法步骤,对变量的内存分配,使存在亲和度关系的同一颜色组下的相邻时序变量之间重用内存块,通过分析可释放的对象和后继的需创建的对象之间的属性相似性,令两个对象公用内存空间,减少占用的处理器和内存资源;
通过在多目标优化问题中设置目标2:最大化着色方案的亲和度分值,使得内存分配次数最少。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
实施例一:
一种高效的不可变对象执行环境的构建方法,包括如下步骤:
步骤1:对程序代码进行静态分析,获得变量之间的亲和度;在本例中静态分析为结合变量槽重用和对象重分配的分析;
步骤2:通过亲和度分析的图着色算法,获得着色方案,并根据着色方案确定寄存器分配方案;
步骤3:确定着色方案后,把同颜色组的所有节点按时序排列,并对所有节点进行逃逸分析;其中节点表示变量;
步骤4:应用逃逸分析结果结合变量之间的亲和度以及着色方案,分配内存块。
所述步骤1中,对程序代码进行静态分析过程中,首先需要计算出所有变量的生命期,生命期表示从赋值的码址到最后一次使用的码址。其中码址表示满足代码先后次序到整数的映射;在本例中码址可以为程序编码以后在内存的地址,也可以是相对于程序开始位置的偏移量。其次建立变量间的生命周期关系图 G(V,E),其中V表示顶点的集合,E表示边的集合,在本申请中顶点表示变量的生命期,边表示两个变量的生命期存在重叠;因此如果任意两个顶点之间存在边,则认为两个顶点对应的变量的生命期之间存在重叠。最后判断任意两个存在边的变量之间的亲和度关系;其中对存在边的任意两个变量之间的亲和度关系,包括如下几种不相交的情况:
情况一:两个变量类型相同且它们指向的都是带有若干属性的对象,并且则两个被变量指向的对象之间,除了1个属性外其他属性都相同,则认为这两个变量之间亲和度高;变量亲和度高的情况产生自常见的代码模式,即b等于复制a 然后更新b上的一个属性,此时认为b和a的亲和度高;
情况二:对于不满足情况一的两个变量,如果两个变量的类型相同,则认为这两个变量之间亲和度中等;其中两个变量的类型相同,表示这两个变量指向的内存布局相同;
情况三:对于不满足情况一和情况二的情形,如果两个变量的指向的内存大小属于同样的分配类,则认为它们之间亲和度低;其中同样的分配类表示两个内存空间预留的大小相同,或被同一个子内存分配器分配;
情况四:其他情况,认为两个变量之间无亲和度。
所述步骤2中,分配寄存器包括如下步骤:
步骤21:将所有变量作为节点,并将所有变量按时序排列;
步骤22:根据图着色算法,构建多目标优化问题;其中多目标优化问题中包括目标和约束;
步骤23:通过优化算法,对多目标优化问题求解,得到满足约束的帕累托最优曲线;
步骤24:通过帕累托最优曲线,获得寄存器的分配方案。
所述步骤21中变量的时序为变量第一次出现的码址。
所述步骤22中,构建的多目标优化问题包括两个目标和两个约束,如下所示:
目标一:最小化Yj的和;
目标二:最大化着色方案的亲和度分值;
约束1:对任意边对应的两个节点{vi,vl},都有Xij+Xij小于等于Yj;
约束2:对任意节点vi,有∑jXij=1。
其中,vi,vl表示节点,i和l表示时序编号,其中i表示时序为i的节点,l表示时序为l的节点,在本例中节点表示变量;j表示j号颜色,j∈{1,2...};Yj表示j号颜色的着色运用情况,其中如果有至少一个节点采用j号颜色,则设定Yj为1,否则Yj为0;Xij表示节点vi和j号颜色的关系,若节点vi采用了j号颜色,则设定Xij为 1,否则设定Xij为0,同理Xlj表示节点vl和j号颜色的关系。对于目标一,由于存在j号颜色,则对应的Yj设定为1,因此最小化Yj的和,表示在着色方案中使用的颜色最少。在目标二中的亲和度分值与变量之间的亲和度呈正相关,在本例中,从情况一到情况四,亲和度分值逐渐降低,无亲和度则亲和度分值为0。着色方案的亲和度分值的计算包括如下步骤:
步骤221:将所有节点根据颜色进行分组,并将每组节点分别按时序进行排序;
步骤222:对于每组颜色中的节点,分别计算时序相邻的两个节点之前的亲和度分值,并求和,获得颜色组的亲和度分值;
步骤223:将每组颜色组的亲和度分值相加,获得着色方案的亲和度分值。
其中目标2的最大化亲和度分值的目的是为了使内存的分配次数最少。
对于约束一,表示存在边的两个节点的颜色不相同;对于约束二,表示一个节点只能有一个颜色。
所述步骤23中,优化算法包括但不限于混合粒子群-遗传算法。
所述步骤24中,通过帕累托最优曲线,在最优曲线中按随机或者其他偏好方式选取一个解,获得寄存器的分配方案。
所述步骤4中,分配内存块包括如下步骤:
步骤41:判断变量A和变量B在该寄存器对应的变量中是否时序相邻;若变量A和变量B时序相邻,则进入下一步;否则结束步骤;
步骤42:判断时序在前的变量A是否发生逃逸;若变量A没有发生逃逸,则进入下一步;否则减少变量A的引用次数或者释放变量A的内存块,并另外分配B需要的内存块,结束步骤;
步骤43:变量A没有发生逃逸,变量B根据与变量A的亲和度,对变量A 的内存进行分配,结束步骤。
所述步骤43中内存资源的分配重用与亲和度的关系为:
若变量A和比变量B的亲和度高,则变量B重用变量A的内存块,并且在重用的内存块中覆写变量B指向的对象中区别于变量A指向的对象的属性;
若变量A和变量B的亲和度中等,则变量B重用变量A的内容块,并且在重用的内存块中覆写变量B指向的对象的所有属性;需要说明的是此时对于重用的内存块中不需要覆写变量B指向的对象类型等元数据;
若变量A和变量B的亲和度低,则变量B重用变量A的内存块,并且基于变量B对内存块的整体进行覆写;
若变量A和变量B无亲和度,则减少变量A的引用数或者释放变量A的内存块,并另外分配变量B需要的内存块。
在实施的过程中,通过步骤1-4,对变量的内存分配,使存在亲和度关系的同一颜色组下的相邻时序变量之间重用内存块,通过分析可释放的对象和后继的需创建的对象之间的属性相似性,令两个对象公用内存空间。
一种执行环境的构建装置,包括:
亲和度判断模块:用于基于上述的方法,判断变量之间的亲和度。
逃逸分析模块:用于对变量进行逃逸分析。
着色模块:基于上述的方法,对变量的节点进行着色分析,获得着色方案。
时序排序模块:将变量根据时序进行排列,即为变量第一次出现的码址进行排序。
内存分配模块:根据逃逸分析模块的逃逸分析结果,结合亲和度判断模块获得的亲和度以及着色模块获得的着色方案,分配变量的内存。
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
Claims (3)
1.一种高效的不可变对象执行环境的构建方法,其特征在于,包括如下步骤:
步骤1:对程序代码进行静态分析,获得变量之间的亲和度;
步骤2:通过亲和度分析的图着色算法,获得着色方案,并根据着色方案确定寄存器分配方案;
步骤3:确定着色方案后,把同颜色组的所有节点按时序排列,并对所有节点进行逃逸分析;其中节点表示变量;
步骤4:应用逃逸分析结果结合变量之间的亲和度以及着色方案,分配内存块;
所述步骤1中,对程序代码进行静态分析过程中,首先需要计算出所有变量的生命期;其次建立变量间的生命周期关系图G(V,E),其中V 表示顶点的集合,E 表示边的集合,顶点表示变量的生命期,边表示两个变量的生命期存在重叠;最后判断任意两个存在边的变量之间的亲和度关系;
所述变量之间的亲和度关系,包括如下几种不相交的情况;
情况一:两个变量类型相同且它们指向的都是带有若干属性的对象,并且两个被变量指向的对象之间,除了1个属性外其他属性都相同,则认为这两个变量之间亲和度高;
情况二:对于不满足情况一的两个变量,如果两个变量的类型相同,则认为这两个变量之间亲和度中等;
情况三:对于不满足情况一和情况二的情形,如果两个变量的指向的内存大小属于同样的分配类,则认为它们之间亲和度低;
情况四:其他情况,认为两个变量之间无亲和度;
所述步骤2中,分配寄存器包括如下步骤:
步骤21:将所有变量作为节点,并将所有变量按时序排列;
步骤22:根据图着色算法,构建多目标优化问题;其中多目标优化问题中包括目标和约束;
步骤23:通过优化算法,对多目标优化问题求解,得到满足约束的帕累托最优曲线;
步骤24:通过帕累托最优曲线,获得寄存器的分配方案;
所述步骤22中,构建的多目标优化问题包括两个目标和两个约束,如下所示:
目标一:最小化的Yj和;
目标二:最大化着色方案的亲和度分值;
约束1:对任意边对应的两个节点 {vi,vl},都有Xij+Xlj小于等于Yj;
约束2:对任意节点vi,有;
其中,vi,vl表示节点,i和l表示时序编号,其中i表示时序为i的节点,l表示时序为l的节点;j表示j号颜色,;Yj表示j号颜色的着色运用情况,其中如果有任意节点采用j号颜色,则设定Yj为1,否则Yj为0;Xij表示节点vi和j号颜色的关系,若节点vi采用了j号颜色,则设定Xij为1,否则设定Xij为0,同理Xlj表示节点vl和j号颜色的关系;
所述目标二中的亲和度分值与变量之间的亲和度呈正相关;着色方案的亲和度分值的计算包括如下步骤;
步骤221:将所有节点根据颜色进行分组,并将每组节点分别按时序进行排序;
步骤222:对于每组颜色中的节点,分别计算时序相邻的两个节点之间的亲和度分值,并求和,获得颜色组的亲和度分值;
步骤223:将每组颜色组的亲和度分值相加,获得着色方案的亲和度分值;
所述步骤4中,分配内存块包括如下步骤;
步骤41:判断变量A和变量B在该寄存器对应的变量中是否时序相邻;若变量A和变量B时序相邻,则进入下一步;否则结束步骤;
步骤42:判断时序在前的变量A是否发生逃逸;若变量A没有发生逃逸,则进入下一步;否则减少变量A的引用次数或者释放变量A的内存块,并另外分配B需要的内存块,结束步骤;
步骤43:变量A没有发生逃逸,变量B根据与变量A的亲和度,对变量A的内存资源进行分配重用,结束步骤。
2.根据权利要求1所述的一种高效的不可变对象执行环境的构建方法,其特征在于,所述步骤43中内存资源的分配重用与亲和度的关系为:
若变量A和变量B的亲和度高,则变量B重用变量A的内存块,并且在重用的内存块中覆写变量B指向的对象中区别于变量A指向的对象的属性;
若变量A和变量B的亲和度中等,则变量B重用变量A的内容块,并且在重用的内存块中覆写变量B指向的对象的所有属性;
若变量A和变量B的亲和度低,则变量B重用变量A的内存块,并且基于变量B对内存块的整体进行覆写;
若变量A和变量B无亲和度,则减少变量A的引用数或者释放变量A的内存块,并另外分配变量B需要的内存块。
3.一种不可变对象执行环境的构建装置,其特征在于,所述构建装置基于权利要求1-2中的任意一项方法,构建装置包括:
亲和度判断模块:判断变量之间的亲和度;
逃逸分析模块:用于对变量进行逃逸分析;
着色模块:对变量的节点进行着色分析,获得着色方案;
时序排序模块:将变量根据时序进行排列,即为变量第一次出现的码址进行排序;
内存分配模块:根据逃逸分析模块的逃逸分析结果,结合亲和度判断模块获得的亲和度以及着色模块获得的着色方案,分配变量的内存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020109493245 | 2020-09-10 | ||
CN202010949324 | 2020-09-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742080A CN113742080A (zh) | 2021-12-03 |
CN113742080B true CN113742080B (zh) | 2024-03-01 |
Family
ID=78738122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064350.0A Active CN113742080B (zh) | 2020-09-10 | 2021-09-10 | 一种高效的不可变对象执行环境的构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742080B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4571678A (en) * | 1982-11-05 | 1986-02-18 | International Business Machines Corporation | Register allocation and spilling via graph coloring |
US5784066A (en) * | 1995-11-22 | 1998-07-21 | International Business Machines Corporation | Method and apparatus for using partner information to color nodes in an interference graph within a computer system |
KR19980036297A (ko) * | 1996-11-18 | 1998-08-05 | 양승택 | 그래프 분할에 의한 레지스터 할당 방법 |
CN101339533A (zh) * | 2007-07-04 | 2009-01-07 | 国际商业机器公司 | 基于分区的诊断Java系统的内存泄漏的方法及装置 |
CN102033773A (zh) * | 2010-11-12 | 2011-04-27 | 西安电子科技大学 | 基于反图描述的嵌入式系统寄存器分配方法 |
CN102073589A (zh) * | 2010-12-29 | 2011-05-25 | 北京邮电大学 | 一种基于代码静态分析的数据竞争检测方法及系统 |
CN102831005A (zh) * | 2012-07-13 | 2012-12-19 | 天津国芯科技有限公司 | 针对C*core处理器寄存器分配的编译方法及编译器 |
CN103324463A (zh) * | 2013-05-10 | 2013-09-25 | 中国人民解放军信息工程大学 | 基于区域优先级的寄存器分配方法 |
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN104808968A (zh) * | 2014-01-23 | 2015-07-29 | 腾讯科技(北京)有限公司 | 全局数据的存储、上报方法与装置和系统 |
CN107748794A (zh) * | 2017-11-03 | 2018-03-02 | 中国人民解放军陆军工程大学 | 一种空间数据存储方法 |
CN111052149A (zh) * | 2017-08-08 | 2020-04-21 | 三星电子株式会社 | 用于确定网络中的内存需求的方法和装置 |
CN111435309A (zh) * | 2019-01-11 | 2020-07-21 | 中标软件有限公司 | 一种寄存器分配优化实现方法 |
CN116402618A (zh) * | 2022-11-30 | 2023-07-07 | 泰康保险集团股份有限公司 | 资金分配方法、装置、电子设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609088B1 (en) * | 1998-07-24 | 2003-08-19 | Interuniversitaire Micro-Elektronica Centrum | Method for determining an optimized memory organization of a digital device |
US20040064811A1 (en) * | 2002-09-30 | 2004-04-01 | Advanced Micro Devices, Inc. | Optimal register allocation in compilers |
US7185329B1 (en) * | 2003-03-28 | 2007-02-27 | Applied Micro Circuits Corporation | Use of different color sequences for variables of different sizes and different semantics |
US8555270B2 (en) * | 2006-04-28 | 2013-10-08 | International Business Machines Corporation | Profile-based global live-range splitting |
US20090077001A1 (en) * | 2006-11-02 | 2009-03-19 | William Macready | Integrating optimization directly into databases |
CA2675686C (en) * | 2009-08-27 | 2011-10-11 | Ibm Canada Limited - Ibm Canada Limitee | Object collocation |
US9841975B2 (en) * | 2013-09-18 | 2017-12-12 | Nxp Usa, Inc. | Method and apparatus for performing register allocation |
-
2021
- 2021-09-10 CN CN202111064350.0A patent/CN113742080B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4571678A (en) * | 1982-11-05 | 1986-02-18 | International Business Machines Corporation | Register allocation and spilling via graph coloring |
US5784066A (en) * | 1995-11-22 | 1998-07-21 | International Business Machines Corporation | Method and apparatus for using partner information to color nodes in an interference graph within a computer system |
KR19980036297A (ko) * | 1996-11-18 | 1998-08-05 | 양승택 | 그래프 분할에 의한 레지스터 할당 방법 |
CN101339533A (zh) * | 2007-07-04 | 2009-01-07 | 国际商业机器公司 | 基于分区的诊断Java系统的内存泄漏的方法及装置 |
CN102033773A (zh) * | 2010-11-12 | 2011-04-27 | 西安电子科技大学 | 基于反图描述的嵌入式系统寄存器分配方法 |
CN102073589A (zh) * | 2010-12-29 | 2011-05-25 | 北京邮电大学 | 一种基于代码静态分析的数据竞争检测方法及系统 |
CN102831005A (zh) * | 2012-07-13 | 2012-12-19 | 天津国芯科技有限公司 | 针对C*core处理器寄存器分配的编译方法及编译器 |
CN103324463A (zh) * | 2013-05-10 | 2013-09-25 | 中国人民解放军信息工程大学 | 基于区域优先级的寄存器分配方法 |
CN104808968A (zh) * | 2014-01-23 | 2015-07-29 | 腾讯科技(北京)有限公司 | 全局数据的存储、上报方法与装置和系统 |
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN111052149A (zh) * | 2017-08-08 | 2020-04-21 | 三星电子株式会社 | 用于确定网络中的内存需求的方法和装置 |
CN107748794A (zh) * | 2017-11-03 | 2018-03-02 | 中国人民解放军陆军工程大学 | 一种空间数据存储方法 |
CN111435309A (zh) * | 2019-01-11 | 2020-07-21 | 中标软件有限公司 | 一种寄存器分配优化实现方法 |
CN116402618A (zh) * | 2022-11-30 | 2023-07-07 | 泰康保险集团股份有限公司 | 资金分配方法、装置、电子设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
基于互补谓词的编译优化;胡定磊;陈书明;王凤芹;刘春林;;电子学报(第07期);114-120页 * |
基于网的寄存器分配冲突图研究;肖荣;;计算机工程(第11期);第70-72页 * |
柴志君 ; 欧阳中辉 ; 刘文彪 ; .基于NSGA-Ⅱ算法的备件存储分配优化研究.舰船电子工程.2020,(第02期),第114-117+134页. * |
肖荣 ; .基于网的寄存器分配冲突图研究.计算机工程.2010,(第11期),第70-72页. * |
Also Published As
Publication number | Publication date |
---|---|
CN113742080A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230038061A1 (en) | Convergence among concurrently executing threads | |
Khorasani et al. | CuSha: vertex-centric graph processing on GPUs | |
US8400458B2 (en) | Method and system for blocking data on a GPU | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
US20140130021A1 (en) | System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same | |
US11385931B2 (en) | Method, electronic device, and computer program product for processing computing job | |
CN101551761A (zh) | 一种异构多处理器中共享流内存的方法 | |
CN112711478A (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
CN103649917A (zh) | 图形处理单元中的指令剔除 | |
CN113742080B (zh) | 一种高效的不可变对象执行环境的构建方法及装置 | |
US20040093477A1 (en) | Scalable parallel processing on shared memory computers | |
CN115269205B (zh) | 一种面向神经网络计算的内存优化方法和装置 | |
Gonthier et al. | Memory-aware scheduling of tasks sharing data on multiple gpus with dynamic runtime systems | |
CN112130977B (zh) | 一种任务调度方法、装置、设备及介质 | |
US20140040907A1 (en) | Resource assignment in a hybrid system | |
JP7217341B2 (ja) | プロセッサおよびレジスタの継承方法 | |
Bellas et al. | Exact set similarity joins for large datasets in the GPGPU paradigm | |
KR101109009B1 (ko) | 비정규 리덕션의 병렬화 방법 | |
KR101989033B1 (ko) | 플랫폼 관리 장치 및 방법 | |
Barack et al. | Effectiveness of code refactoring techniques for energy consumption in a mobile environment | |
Xu et al. | Reduction operations in parallel loops for GPGPUs | |
US11762641B2 (en) | Allocating variables to computer memory | |
Gustedt et al. | Optimizing locality by topology-aware placement for a task based programming model | |
JPWO2021070016A5 (zh) | ||
Lester | Improving performance of collection-oriented operations through parallel fusion |
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 |