CN113986555B - 缓存优化方法、装置、设备及可读存储介质 - Google Patents
缓存优化方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113986555B CN113986555B CN202111326699.7A CN202111326699A CN113986555B CN 113986555 B CN113986555 B CN 113986555B CN 202111326699 A CN202111326699 A CN 202111326699A CN 113986555 B CN113986555 B CN 113986555B
- Authority
- CN
- China
- Prior art keywords
- variables
- class file
- variable
- added
- field information
- 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
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
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种缓存优化方法、装置、设备及可读存储介质,所述缓存优化方法包括:获取并解析class文件,得到解析后class文件;读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。本申请解决了数据缓存效率低的技术问题。
Description
技术领域
本申请涉及金融科技(Fintech)的计算机技术领域,尤其涉及一种缓存优化方法、装置、设备及可读存储介质。
背景技术
随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融业对应待办事项的分发也有更高的要求。
随着计算机技术不断的发展,对于数据缓存的要求也越来越高,目前,CPU在主内存进行数据缓存时,通常将主内存中临近的多个变量载入同一主内存缓存行中,但是,一旦多个线程同时从主内存中读写同一个缓存行中的变量到自己的缓存时,任意一线程对缓存变量进行的修改都会导致其他线程已经读写的缓存失效,且即使不同线程在主内存缓存行中所需要的变量并无关联性,所有对主内存缓存行有读写需求的线程均需要重新读写最新的缓存,进而一旦多个线程对一个主内存缓存行中缓存变量的修改较为频繁,将会导致多个线程频繁地发生缓存未命中,从而影响数据缓存的效率。
发明内容
本申请的主要目的在于提供一种缓存优化方法、装置、设备及可读存储介质,旨在解决现有技术中数据缓存效率低的技术问题。
为实现上述目的,本申请提供一种缓存优化方法,所述缓存优化方法应用于缓存优化设备,所述缓存优化方法包括:
获取并解析class文件,得到解析后class文件;
读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;
根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。
可选地,所述字段信息包括所述第一成员变量对应的成员变量字段类型,
所述依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量的步骤包括:
依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度;
依据所述第一字节长度、所述第二字节长度和所述预设缓存行大小,计算待添加的第二成员变量的数量,得到所述待添加变量数量。
可选地,所述字段信息包括所述第一成员变量对应的描述符索引,
在所述依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度的步骤之前,所述缓存优化方法还包括:
获取当前操作系统位数,并依据所述当前操作系统位数,确定所述预设缓存行大小;
依据所述描述符索引,确定所述第一成员变量对应的成员变量字段类型。
可选地,所述字段信息包括所述第一成员变量对应的字段名称,
所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量的步骤包括:
在所述字段名称处顺序添加所述若干第二成员变量,并在所述解析后class文件中读取字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
依据所述待添加变量数量,更新所述字段数量,得到变量添加后的class文件;
对所述变量添加后的class文件进行适配调整,得到所述目标class文件。
可选地,所述对所述变量添加后的class文件进行适配调整,得到所述目标class文件的步骤包括:
在所述变量添加后的class文件中方法信息处添加所述若干第二成员变量对应的变量调用方法;
依据所述方法信息处添加的变量调用方法的数量,更新所述变量添加后的class文件中的方法数量,得到所述目标class文件。
可选地,在所述读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息的步骤之前,所述缓存优化方法还包括:
读取所述解析后class文件中的字段数量;
依据所述字段数量,判断所述解析后class文件中是否存在所述第一成员变量;
若存在,则执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息。
可选地,所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量的步骤包括:
在所述第一成员变量对应的字段信息中适配添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息;
若读取成功,则执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
若读取失败,则将添加所述若干第二成员变量后的class文件作为所述目标class文件。
本申请还提供一种缓存优化装置,所述缓存优化装置为虚拟装置,且所述缓存优化装置应用于缓存优化设备,所述缓存优化装置包括:
获取解析模块,用于获取并解析class文件,得到解析后class文件;
变量数量计算模块,用于读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
变量添加模块,用于在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;
加载模块,用于根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。
可选地,所述字段信息包括所述第一成员变量对应的成员变量字段类型,所述变量数量计算模块还用于:
依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度;
依据所述第一字节长度、所述第二字节长度和所述预设缓存行大小,计算待添加的第二成员变量的数量,得到所述待添加变量数量。
可选地,所述字段信息包括所述第一成员变量对应的描述符索引,所述缓存优化装置还用于:
获取当前操作系统位数,并依据所述当前操作系统位数,确定所述预设缓存行大小;
依据所述描述符索引,确定所述第一成员变量对应的成员变量字段类型。
可选地,所述字段信息包括所述第一成员变量对应的字段名称,所述变量添加模块还用于:
在所述字段名称处顺序添加所述若干第二成员变量,并在所述解析后class文件中读取字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
依据所述待添加变量数量,更新所述字段数量,得到变量添加后的class文件;
对所述变量添加后的class文件进行适配调整,得到所述目标class文件。
可选地,所述变量添加模块还用于:
在所述变量添加后的class文件中方法信息处添加所述若干第二成员变量对应的变量调用方法;
依据所述方法信息处添加的变量调用方法的数量,更新所述变量添加后的class文件中的方法数量,得到所述目标class文件。
可选地,所述缓存优化装置还用于:
读取所述解析后class文件中的字段数量;
依据所述字段数量,判断所述解析后class文件中是否存在所述第一成员变量;
若存在,则执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息。
可选地,所述变量添加模块还用于:
在所述第一成员变量对应的字段信息中适配添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息;
若读取成功,则执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
若读取失败,则将添加所述若干第二成员变量后的class文件作为所述目标class文件。
本申请还提供一种缓存优化设备,所述缓存优化设备为实体设备,所述缓存优化设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述缓存优化方法的程序,所述缓存优化方法的程序被处理器执行时可实现如上述的缓存优化方法的步骤。
本申请还提供一种可读存储介质,所述可读存储介质上存储有实现缓存优化方法的程序,所述缓存优化方法的程序被处理器执行时实现如上述的缓存优化方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的缓存优化方法的步骤。
本申请提供了一种缓存优化方法、装置、设备、可读存储介质及计算机程序产品,并具体公开了获取并解析class文件,得到解析后class文件;读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。所以在本申请中对于一个主内存缓存行,该主内存缓存行中只缓存一个有线程读写的第一成员变量,实现了将有线程读写的每一第一成员变量单独缓存至一个主内存缓存行,且该主内存缓存行载入的其他成员变量均为无线程读写的第二成员变量,进而当任意一线程修改缓存变量时,需要重新从主内存缓存行再次获取最新的缓存变量的线程仅为对缓存变量有读写需求的线程,且若不同线程所需要的变量并无关联性,则不会将不同线程所需要的变量载入同一主内存缓存行,进而使得一个主内存缓存行所对应的线程数量不会过多,克服了现有技术中一旦存在多个线程同时从主内存中读写同一个缓存行中的变量到自己的缓存时,任意一线程对缓存变量进行的修改都会导致其他线程已经读写的缓存失效,且即使不同线程在主内存缓存行中所需要的变量并无关联性,所有对主内存缓存行有读写需求的线程均需要重新读写最新的缓存的技术缺陷,所以可降低多个线程对一个主内存缓存行中缓存变量进行修改的频繁程度,进而可降低缓存未命中的频繁程度,提升了数据缓存的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请缓存优化方法第一实施例的流程示意图;
图2为本申请缓存优化方法中预设加载流程的示意图;
图3为本申请缓存优化方法第二实施例的流程示意图;
图4为本申请实施例方案涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
首先,应当理解的是,多个线程之间共享同一份数据时,通常需要将数据存储于主内存,而由于存在空间局部性,临近的数据在将来被访问的可能性更大,为了充分利用缓存,CPU通常在把主内存的数据载入缓存时,通常会把临近的共64比特或者32比特的数据一同放入同一个缓存行,但是,一旦多个线程同时从主内存中读写同一个缓存行中的变量到自己的缓存时,任意一线程对缓存变量进行的修改都会导致其他线程已经读写的缓存失效,而载入至同一主内存缓存行的各变量仅仅在主内存中临近,这些变量通常并无其它实质上的关联性,不同的线程在该主内存缓存行中所需要的变量通常并不相同,且无关联性,但是当主内存缓存行对应的某一线程修改缓存后,将会导致主内存缓存行对应的其他线程的缓存失效,进而即使修改的缓存内容并不是其他线程所需的变量,所有对主内存缓存行有读写需求的线程却均需要重新读写最新的缓存,进而一旦多个线程对一个主内存缓存行中缓存变量的修改较为频繁,将会导致多个线程频繁地发生缓存未命中,从而影响数据缓存的效率。
本申请实施例提供一种缓存优化方法,在本申请缓存优化方法的第一实施例中,参照图1,所述缓存优化方法包括:
步骤S10,获取并解析class文件,得到解析后class文件;
步骤S20,读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
步骤S30,在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;
步骤S40,根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。
本申请实施例提供了一种缓存优化方法,并具体公开了通过自定义类加载器获取并解析class文件,得到解析后class文件,进而读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量,进而在所述字段信息中适配添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量,实现对class文件进行适应性修改的目的,进而得到目标class文件,使得目标class文件中每一个有线程读写的第一成员变量均存在对应的若干第二成员变量,进而在根据预设加载流程初始化所述目标class文件时,可将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行,进而对于一个主内存缓存行,该主内存缓存行中只缓存一个有线程读写的第一成员变量,实现了将有线程读写的每一第一成员变量单独缓存至一个主内存缓存行,且该主内存缓存行载入的其他成员变量均为无线程读写的第二成员变量,进而当任意一线程修改缓存变量时,需要重新从主内存缓存行再次获取最新的缓存变量的线程仅为对修改后的缓存变量有读写需求的线程,而非对整个主内存缓存行中所有的缓存变量有读写需求的线程,降低了各线程从单个主内存缓存行进行读写的频繁程度,且若不同线程所需要的变量并无关联性,则不会将不同线程所需要的变量载入同一主内存缓存行,进而使得一个主内存缓存行所对应的线程数量不会过多,进一步降低了各线程从单个主内存缓存行进行读写的频繁程度,所以可降低缓存未命中的频繁程度,提升了数据缓存的效率。
在本实施例中,需要说明的是,所述class文件为java字节码,该class文件由自定义类加载器进行适配修改为目标class文件,进而根据预设加载流程,将目标class文件加载至主内存缓存行,其中,所述预设加载流程具体可参照图2,具体流程为:首先由自定义类加载器判断是否加载目标class文件,若自定义加载器无法加载目标class文件,则委托给应用类加载器进行加载,若应用类加载器无法加载目标class文件,则委托给扩展类加载器进行加载,若扩展类加载器无法加载目标class文件,则委托给引导类加载器进行加载。
示例性的,步骤S10:获取并解析class文件,得到解析后class文件,还包括:
通过自定义类加载器获取class文件,并通过读取class文件的固定格式,解析所述class文件,得到解析后class文件。其中,所述class文件的固定格式包括但不限定于u2类型下的fields_count字段、field_info类型下的fields字段、u2类型下的methods_count字段以及method_info类型下的methods字段,其中,所述u2类型下的fields_count字段用于表示当前class文件中第一成员变量的数量,所述field_info类型下的fields字段用于存储class文件中具体的成员变量详细信息,所述u2类型下的methods_count字段用于表示当前class文件中方法的数量,所述method_info类型下的methods字段用于表示当前class文件中存在的方法的详细信息。
在本实施例中,需要说明的是,所述第一成员变量为原先存在于class文件中的成员变量,在将class文件加载至内存后,将会存在线程对所述第一成员变量有读写需求。所述字段信息包括所述第一成员变量对应的field_info类型下的fields字段信息,所述字段信息包括但不限定于字段类型以及指向常量池的字段名称等。
示例性的,步骤S20:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量,还包括:
读取所述解析后class文件中有线程读写的第一成员变量对应的字段类型,进而依据所述字段类型,确定所述第一成员变量所需的缓存大小,进而根据当前操作系统确定的预设缓存行大小以及所述所述第一成员变量所需的缓存大小,确定剩余缓存大小,依据所述剩余缓存大小,计算第一成员变量对应的需要添加的若干第二成员变量的数量,得到待添加变量数量,其中,所述字段类型标识第一成员变量的数据类型,例如,long类型、double类型或者float类型等,所述预设缓存行大小由当前操作系统的类型决定,例如,假设当前操作系统为64位操作系统,则预设缓存行大小为64字节,假设当前操作系统为32位操作系统,则预设缓存行大小为32字节。
其中,在步骤S20中,所述字段信息包括所述第一成员变量对应的成员变量字段类型,所述依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量的步骤包括:
步骤S21,依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度;
在本实施例中,需要说明的是,所述成员变量字段类型为所述第一成员变量的数据类型,所述第一字节长度为所述第一成员变量所占据的字节长度,所述第二字节长度为所述第二成员变量所占据的字节长度。
示例性的,依据所述成员变量字段类型,以及字段类型和变量字节长度之间的映射关系,查询所述第一成员变量对应的字节长度,得到第一字节长度,并依据所述第二成员变量的字节类型,以及字段类型和变量字节长度之间的映射关系,查询所述第二成员变量对应的字节长度,得到第二字节长度,在一种实施方式中,可设置第二成员变量与第一成员变量的字节类型一致,进而所述第一字节长度与第二字节长度将相等,例如,假设第一成员变量的字节类型为long类型,所以对应的字节长度为8字节,第一字节长度为8字节,则可设置第二成员变量的字节类型也为long类型,则第二字节长度也为8字节。
其中,对于步骤S21,所述字段信息包括所述第一成员变量对应的描述符索引,在所述依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度的步骤之前,所述缓存优化方法还包括:
步骤S211,获取当前操作系统位数,并依据所述当前操作系统位数,确定所述预设缓存行大小;
在本实施例中,需要说明的是,所述预设缓存行大小与当前操作系统的位数相对应,若当前操作系统的位数为64位,则预设缓存行大小为64字节,若当前操作系统的位数为32位,则预设缓存行大小为32字节。
步骤S212,依据所述描述符索引,确定所述第一成员变量对应的成员变量字段类型。
在本实施例中,需要说明的是,所述描述符索引标识了第一成员变量的字节类型。所述描述符索引为class文件中field_info类型下的fields字段中的descriptor_index。
步骤S22,依据所述第一字节长度、所述第二字节长度和所述预设缓存行大小,计算待添加的第二成员变量的数量,得到所述待添加变量数量。
在本实施例中,计算所述预设缓存行大小与所述第一字节长度以及class文件的数据头所要占据的字节长度之间的差值,得到待扩展缓存行长度,进而通过计算所述待扩展缓存行长度与所述第二字节长度之间的比值,计算待添加的第二成员变量的数量,得到所述待添加变量数量,例如,假设所述预设缓存行大小为64字节,所述class文件的数据头所要占据的字节长度为8字节,所述第一字节长度为8字节,则所述待扩展缓存行长度为48字节,而第二字节长度也为8字节,则所述待添加变量数量为6个。
其中,对于步骤S20,在所述读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息的步骤之前,所述缓存优化方法还包括:
步骤A10,读取所述解析后class文件中的字段数量;
在本实施例中,示例性的,读取所述解析后class文件中u2类型下的fields_count字段,得到字段数量,其中,所述字段数量为所述class文件中第一成员变量的数量。
步骤A20,依据所述字段数量,判断所述解析后class文件中是否存在所述第一成员变量;
步骤A30,若存在,则执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息。
在本实施例中,示例性的,判断所述字段数量是否为0,若所述字段数量为0,则判定所述解析后class文件中不存在所述第一成员变量,则直接将所述class文件作为目标class文件,并执行步骤:根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行;若所述字段数量不为0,则执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息。进而实现了自动判断是否是否对class文件进行成员变量扩展的目的。
在本实施例中,需要说明的是,所述第二成员变量可设置为与第一成员变量相同数据类型的成员变量,例如,假设所述第一成员变量为long类型,则可设置第二成员变量也为long类型。
示例性的,步骤S30:在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量,还包括:
在所述字段信息中的字段名称中第一成员变量后顺序添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量,并返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,若读取失败,则将添加若干第二成员变量后的class文件作为目标class文件,若读取成功,则执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量,以为所述class文件中每一第一成员变量都添加对应的若干第二成员变量。
其中,在步骤S30中,所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量的步骤包括:
步骤S31,在所述第一成员变量对应的字段信息中适配添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
在本实施例中,示例性的,在所述字段信息中所述第一成员变量对应的字段名称后顺序添加无线程读写的若干第二成员变量,在所述解析后class文件中方法信息中添加所述若干成员变量对应的变量调用方法,以将所述若干第二成员变量适配添加至class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量,实现了将若干第二成员变量适配添加至class文件的目的,使得所述若干第二成员变量符合class文件的格式。
步骤S32,返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息;
步骤S33,若读取成功,则执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
步骤S34,若读取失败,则将添加所述若干第二成员变量后的class文件作为所述目标class文件。
在本实施例中,示例性的,返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,若读取成功,则证明所述class文件中还存在需要添加对应的若干第二成员变量的第一成员变量,进而执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量,以在class文件中继续为第一成员变量添加对应的若干第二成员变量,若读取失败,则证明所述class文件中不存在需要添加对应的若干第二成员变量的第一成员变量,进而直接将添加所述若干第二成员变量后的class文件作为所述目标class文件。
示例性的,步骤S40:根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行,还包括:
根据预设加载流程初始化所述目标class文件,以将所述目标class文件加载至主内存,其中,由于第一成员变量以及第一成员变量对应的若干第二成员变量为临近的变量,所以当通过CPU从主内存中载入变量至主内存缓存行时,会将第一成员变量和第一成员变量对应的若干第二成员变量载入至同一主内存缓存行。
本申请实施例提供了一种缓存优化方法,并具体公开了获取并解析class文件,得到解析后class文件;读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。所以在本申请中对于一个主内存缓存行,该主内存缓存行中只缓存一个有线程读写的第一成员变量,实现了将有线程读写的每一第一成员变量单独缓存至一个主内存缓存行,且该主内存缓存行载入的其他成员变量均为无线程读写的第二成员变量,进而当任意一线程修改缓存变量时,需要重新从主内存缓存行再次获取最新的缓存变量的线程仅为对缓存变量有读写需求的线程,且若不同线程所需要的变量并无关联性,则不会将不同线程所需要的变量载入同一主内存缓存行,进而使得一个主内存缓存行所对应的线程数量不会过多,克服了现有技术中一旦存在多个线程同时从主内存中读写同一个缓存行中的变量到自己的缓存时,任意一线程对缓存变量进行的修改都会导致其他线程已经读写的缓存失效,且即使不同线程在主内存缓存行中所需要的变量并无关联性,所有对主内存缓存行有读写需求的线程均需要重新读写最新的缓存的技术缺陷,所以可降低多个线程对一个主内存缓存行中缓存变量进行修改的频繁程度,进而可降低缓存未命中的频繁程度,提升了数据缓存的效率。
进一步地,参照图3,基于本申请中的第一实施例,在本申请的另一实施例中,在步骤S20中,所述字段信息包括所述第一成员变量对应的字段名称,所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量的步骤包括:
步骤S21,在所述字段名称处顺序添加所述若干第二成员变量,并在所述解析后class文件中读取字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
在本实施例中,需要说明的是,所述字段名称在所述class文件的field_info类型下的fields字段中,所述字段数量在class文件中u2类型下的fields_count字段中。
示例性的,在class文件中field_info类型下的fields字段中所述第一成员变量的字段名称后顺序添加所述若干第二成员变量,并读取所述解析后class文件的u2类型下的fields_count字段下的字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量,所述字段数量为所述class文件中第一成员变量的数量。
步骤S22,依据所述待添加变量数量,更新所述字段数量,得到变量添加后的class文件;
在本实施例中,在所述字段数量的基础上累加所述待添加变量数量,得到变量添加后的class文件,例如假设所述字段数量为N,所述待添加变量数量为6,则变量添加后的class文件中的字段数量为N+6。进而实现了将第一成员变量对应的若干第二成员变量添加至class文件的目的。
步骤S23,对所述变量添加后的class文件进行适配调整,得到所述目标class文件。
在本实施例中,在所述变量添加后的class文件中适配添加所述若干第二成员变量对应的变量调用方法,得到所述目标class文件,其中,所述变量调用方法包括但不限定于set方法以及get方法。
其中,在步骤S23中,所述对所述变量添加后的class文件进行适配调整,得到所述目标class文件的步骤包括:
步骤S231,在所述变量添加后的class文件中方法信息处添加所述若干第二成员变量对应的变量调用方法;
在本实施例中,需要说明的是,所述方法信息在所述class文件的method_info类型下的methods字段中。
示例性的,在所述所述变量添加后的class文件中method_info类型下的methods字段中的方法信息处添加每一所述第二成员变量对应的变量调用方法。
步骤S232,依据所述方法信息处添加的变量调用方法的数量,更新所述变量添加后的class文件中的方法数量,得到所述目标class文件。
在本实施例中,需要说明的是,所述方法数量在所述class文件的u2类型下的methods_count字段中。
在所述变量添加后的class文件中u2类型下的methods_count字段中方法数量的基础上,累加所述方法信息处添加的变量调用方法的数量,得到目标class文件。
本申请实施例提供了一种在class文件中适配添加若干第二成员变量的方法,也即,在所述字段名称处顺序添加所述若干第二成员变量,并在所述解析后class文件中读取字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量;依据所述待添加变量数量,更新所述字段数量,得到变量添加后的class文件,进而实现了将第二成员变量本身添加至class文件的目的,进而在所述变量添加后的class文件中方法信息处添加所述若干第二成员变量对应的变量调用方法;依据所述方法信息处添加的变量调用方法的数量,更新所述变量添加后的class文件中的方法数量,得到所述目标class文件,进而实现了在class文件中添加所述若干第二成员变量之后,在class文件适配添加若干第二成员变量对应的变量调用方法的目的,使得添加后的若干成员变量可以适配class文件的格式,进而可直接依据预设加载流程直接加载目标class文件,为克服了现有技术中一旦存在多个线程同时从主内存中读写同一个缓存行中的变量到自己的缓存时,任意一线程对缓存变量进行的修改都会导致其他线程已经读写的缓存失效,且即使不同线程在主内存缓存行中所需要的变量并无关联性,所有对主内存缓存行有读写需求的线程均需要重新读写最新的缓存的技术缺陷奠定了基础。
参照图4,图4是本申请实施例方案涉及的硬件运行环境的设备结构示意图。
如图4所示,该缓存优化设备可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,该缓存优化设备还可以包括矩形用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、硬盘电路、WiFi模块等等。矩形用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图4中示出的缓存优化设备结构并不构成对缓存优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图4所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及缓存优化程序。操作系统是管理和控制缓存优化设备硬件和软件资源的程序,支持缓存优化程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与缓存优化系统中其它硬件和软件之间通信。
在图4所示的缓存优化设备中,处理器1001用于执行存储器1005中存储的缓存优化程序,实现上述任一项所述的缓存优化方法的步骤。
本申请缓存优化设备具体实施方式与上述缓存优化方法各实施例基本相同,在此不再赘述。
本申请实施例还提供一种缓存优化装置,所述缓存优化装置应用于缓存优化设备,所述缓存优化装置包括:
获取解析模块,用于获取并解析class文件,得到解析后class文件;
变量数量计算模块,用于读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
变量添加模块,用于在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;
加载模块,用于根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行。
可选地,所述字段信息包括所述第一成员变量对应的成员变量字段类型,所述变量数量计算模块还用于:
依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度;
依据所述第一字节长度、所述第二字节长度和所述预设缓存行大小,计算待添加的第二成员变量的数量,得到所述待添加变量数量。
可选地,所述字段信息包括所述第一成员变量对应的描述符索引,所述缓存优化装置还用于:
获取当前操作系统位数,并依据所述当前操作系统位数,确定所述预设缓存行大小;
依据所述描述符索引,确定所述第一成员变量对应的成员变量字段类型。
可选地,所述字段信息包括所述第一成员变量对应的字段名称,所述变量添加模块还用于:
在所述字段名称处顺序添加所述若干第二成员变量,并在所述解析后class文件中读取字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
依据所述待添加变量数量,更新所述字段数量,得到变量添加后的class文件;
对所述变量添加后的class文件进行适配调整,得到所述目标class文件。
可选地,所述变量添加模块还用于:
在所述变量添加后的class文件中方法信息处添加所述若干第二成员变量对应的变量调用方法;
依据所述方法信息处添加的变量调用方法的数量,更新所述变量添加后的class文件中的方法数量,得到所述目标class文件。
可选地,所述缓存优化装置还用于:
读取所述解析后class文件中的字段数量;
依据所述字段数量,判断所述解析后class文件中是否存在所述第一成员变量;
若存在,则执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息。
可选地,所述变量添加模块还用于:
在所述第一成员变量对应的字段信息中适配添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息;
若读取成功,则执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
若读取失败,则将添加所述若干第二成员变量后的class文件作为所述目标class文件。
本申请缓存优化装置的具体实施方式与上述缓存优化方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的缓存优化方法的步骤。
本申请可读存储介质具体实施方式与上述缓存优化方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种计算机程序产品,且所述计算机程序产品包括有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的缓存优化方法的步骤。
本申请计算机程序产品具体实施方式与上述缓存优化方法各实施例基本相同,在此不再赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (10)
1.一种缓存优化方法,其特征在于,所述缓存优化包括:
获取并解析class文件,得到解析后class文件;
读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;
根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行;
其中,所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件的步骤包括:
在所述字段信息中适配添加无线程读写的若干第二成员变量,在所述变量添加后的class文件中适配添加所述若干第二成员变量对应的变量调用方法,得到目标class文件,其中,所述变量调用方法包括但不限定于set方法以及get方法。
2.如权利要求1所述缓存优化方法,其特征在于,所述字段信息包括所述第一成员变量对应的成员变量字段类型,
所述依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量的步骤包括:
依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度;
依据所述第一字节长度、所述第二字节长度和所述预设缓存行大小,计算待添加的第二成员变量的数量,得到所述待添加变量数量。
3.如权利要求2所述缓存优化方法,其特征在于,所述字段信息包括所述第一成员变量对应的描述符索引,
在所述依据所述成员变量字段类型,确定所述第一成员变量对应的第一字节长度,并获取所述第二成员变量对应的第二字节长度的步骤之前,所述缓存优化方法还包括:
获取当前操作系统位数,并依据所述当前操作系统位数,确定所述预设缓存行大小;
依据所述描述符索引,确定所述第一成员变量对应的成员变量字段类型。
4.如权利要求1所述缓存优化方法,其特征在于,所述字段信息包括所述第一成员变量对应的字段名称,
所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量的步骤包括:
在所述字段名称处顺序添加所述若干第二成员变量,并在所述解析后class文件中读取字段数量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
依据所述待添加变量数量,更新所述字段数量,得到变量添加后的class文件;
对所述变量添加后的class文件进行适配调整,得到所述目标class文件。
5.如权利要求4所述缓存优化方法,其特征在于,所述对所述变量添加后的class文件进行适配调整,得到所述目标class文件的步骤包括:
在所述变量添加后的class文件中方法信息处添加所述若干第二成员变量对应的变量调用方法;
依据所述方法信息处添加的变量调用方法的数量,更新所述变量添加后的class文件中的方法数量,得到所述目标class文件。
6.如权利要求1所述缓存优化方法,其特征在于,在所述读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息的步骤之前,所述缓存优化方法还包括:
读取所述解析后class文件中的字段数量;
依据所述字段数量,判断所述解析后class文件中是否存在所述第一成员变量;
若存在,则执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息。
7.如权利要求1所述缓存优化方法,其特征在于,所述在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量的步骤包括:
在所述第一成员变量对应的字段信息中适配添加无线程读写的若干第二成员变量,其中,所述若干第二成员变量的数量为所述待添加变量数量;
返回执行步骤:读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息;
若读取成功,则执行步骤:依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
若读取失败,则将添加所述若干第二成员变量后的class文件作为所述目标class文件。
8.一种缓存优化装置,其特征在于,所述缓存优化装置包括:
获取解析模块,用于获取并解析class文件,得到解析后class文件;
变量数量计算模块,用于读取所述解析后class文件中有线程读写的第一成员变量对应的字段信息,并依据预设缓存行大小和所述字段信息,计算所述第一成员变量对应的待添加变量数量;
变量添加模块,用于在所述字段信息中适配添加无线程读写的若干第二成员变量,得到目标class文件,其中,所述若干第二成员变量的数量为所述待添加变量数量;
加载模块,用于根据预设加载流程初始化所述目标class文件,以将所述第一成员变量以及所述若干第二成员变量载入至同一主内存缓存行;
所述变量添加模块,还用于在所述字段信息中适配添加无线程读写的若干第二成员变量,在所述变量添加后的class文件中适配添加所述若干第二成员变量对应的变量调用方法,得到目标class文件,其中,所述变量调用方法包括但不限定于set方法以及get方法。
9.一种缓存优化设备,其特征在于,所述缓存优化设备包括:存储器、处理器以及存储在存储器上的用于实现所述缓存优化方法的程序,
所述存储器用于存储实现缓存优化方法的程序;
所述处理器用于执行实现所述缓存优化方法的程序,以实现如权利要求1至7中任一项所述缓存优化方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有实现缓存优化方法的程序,所述实现缓存优化方法的程序被处理器执行以实现如权利要求1至7中任一项所述缓存优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111326699.7A CN113986555B (zh) | 2021-11-10 | 2021-11-10 | 缓存优化方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111326699.7A CN113986555B (zh) | 2021-11-10 | 2021-11-10 | 缓存优化方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986555A CN113986555A (zh) | 2022-01-28 |
CN113986555B true CN113986555B (zh) | 2023-04-07 |
Family
ID=79747670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111326699.7A Active CN113986555B (zh) | 2021-11-10 | 2021-11-10 | 缓存优化方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986555B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966511A (zh) * | 2020-08-12 | 2020-11-20 | 中国工商银行股份有限公司 | 消息队列数据读写处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007056597A1 (en) * | 2005-11-10 | 2007-05-18 | Hewlett-Packard Development Company L.P. | Program thread synchronization |
US9678883B2 (en) * | 2013-07-26 | 2017-06-13 | Futurewei Technologies, Inc. | System and method for detecting false sharing |
CN105242978B (zh) * | 2015-11-19 | 2019-01-08 | 东软集团股份有限公司 | 多线程条件下cpu高速缓存行失效的处理方法及装置 |
CN112131002B (zh) * | 2020-09-24 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 数据管理方法及装置 |
CN112598517B (zh) * | 2020-12-24 | 2022-08-23 | 临沂市新商网络技术有限公司 | 面向大规模并发请求的电子商务交易撮合方法及系统 |
CN113076303A (zh) * | 2021-04-16 | 2021-07-06 | 北京京东拓先科技有限公司 | 分布式系统中业务标识的生成方法和装置 |
-
2021
- 2021-11-10 CN CN202111326699.7A patent/CN113986555B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966511A (zh) * | 2020-08-12 | 2020-11-20 | 中国工商银行股份有限公司 | 消息队列数据读写处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113986555A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US20170161040A1 (en) | Arranging Binary Code Based on Call Graph Partitioning | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
US8214816B2 (en) | Compiler implemented software cache in which non-aliased explicitly fetched data are excluded | |
US8887127B2 (en) | Web browsing apparatus and method through storing and optimizing JAVASCRIPT® code | |
US9513886B2 (en) | Heap data management for limited local memory(LLM) multi-core processors | |
US7243195B2 (en) | Software managed cache optimization system and method for multi-processing systems | |
US20210089470A1 (en) | Address translation methods and systems | |
US20100217937A1 (en) | Data processing apparatus and method | |
KR20070086246A (ko) | 처리 시스템, 캐시 시스템 및 프리페치 데이터 전송 방법 | |
WO2018231898A1 (en) | Cache devices with configurable access policies and control methods thereof | |
US10552334B2 (en) | Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early | |
CN104978284A (zh) | 处理器子程序高速缓冲存储器 | |
US10417128B2 (en) | Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches | |
US10983914B2 (en) | Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus | |
CN107844380A (zh) | 一种支持指令预取的多核缓存wcet分析方法 | |
US8185693B2 (en) | Cache-line aware collection for runtime environments | |
US8266381B2 (en) | Varying an amount of data retrieved from memory based upon an instruction hint | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
CN113986555B (zh) | 缓存优化方法、装置、设备及可读存储介质 | |
CN114253458B (zh) | 内存缺页异常的处理方法、装置、设备及存储介质 | |
US10379827B2 (en) | Automatic identification and generation of non-temporal store and load operations in a dynamic optimization environment | |
CN112395437B (zh) | 一种3d模型的加载方法、装置、电子设备及存储介质 | |
JP2954178B1 (ja) | 可変式キャッシュ方式 | |
CN111104067B (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 |