CN110399316A - 一种用于业务系统性能优化的方法和装置 - Google Patents
一种用于业务系统性能优化的方法和装置 Download PDFInfo
- Publication number
- CN110399316A CN110399316A CN201910578813.1A CN201910578813A CN110399316A CN 110399316 A CN110399316 A CN 110399316A CN 201910578813 A CN201910578813 A CN 201910578813A CN 110399316 A CN110399316 A CN 110399316A
- Authority
- CN
- China
- Prior art keywords
- kernel function
- period
- called
- cycle
- time period
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000005457 optimization Methods 0.000 title claims description 10
- 230000006870 function Effects 0.000 claims abstract description 188
- 230000008901 benefit Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000000737 periodic effect Effects 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/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/0877—Cache access modes
-
- 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
Landscapes
- Engineering & Computer Science (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
本发明公开了用于业务系统性能优化的方法和装置。该方法包括:判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数;如果第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对第一内核函数的被调用次数进行加权操作;其中,内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。通过在内核函数访问历史列表中,对第一内核函数的被调用次数进行加权操作,业务系统的CPU的缓存的命中率得到了改善,业务系统的读取数据的效率得到了优化,性能得到了优化。
Description
技术领域
本发明涉及业务系统的数据存储技术,尤指一种用于业务系统性能优化的方法和装置。
背景技术
业务系统的操作系统在运行的时候,会应用很多存储区域,诸如硬盘、U盘、内存、CPU的缓存(cache,也称为高速缓存);其中,CPU的缓存的读取速度比非缓存存储区域(例如,硬盘、U盘、内存等等)的读取速度快得多,因此,当操作系统需要读取数据的时候,会首先从CPU的缓存中查找需要的数据,如果找到了则直接读取数据,如果找不到的话则从内存或者其他存储区域查找。在缓存机制中,会存在把不常用的数据读取到缓存中的现象,这种现象称为缓存污染。由于不常用的数据占用了缓存的空间,因此缓存污染降低了缓存的利用率,把不常用的数据读取到缓存意味着把常用的数据移出了缓存或者常用的数据无法存储到缓存,这样会直接降低系统的数据命中率。
传统的采用LINUX操作系统的业务系统,CPU的缓存采用LRU(Least RecentlyUsed,最近最少使用)算法管理CPU的缓存。当LINUX操作系统执行在周期性执行的指令的时候,有可能这个周期性执行的指令刚加载到CPU的缓存的时候,这个指令在随后的一段时间中很少受到调用,从而使得这个周期性的指令所在的CPU缓存被清空了,并且这个被清空的CPU缓存中加载了其他的指令,这造成了这个周期性执行的指令在加载到CPU的缓存之后,尚未被利用就被清除了,这会导致CPU缓存的命中率会急剧下降,缓存污染比较严重。
发明内容
为了解决上述技术问题,本发明提供了用于业务系统性能优化的方法和装置,其能够改善CPU缓存的命中率,优化业务系统的性能。
为了达到本发明目的,本发明实施例提供了一种用于业务系统性能优化的方法,该方法包括:
判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数;
如果第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对第一内核函数的被调用次数进行加权操作;其中,内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。
进一步地,在一个可选的实施例中,在判断当前被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的步骤之前,该方法还包括:
累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数,以筛选出对在之前的各个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
进一步地,在一个可选的实施例中,在对第一内核函数的被调用次数进行加权操作的步骤之后,该方法还包括:
根据在内核函数访问历史列表中的内核函数各自的经加权的被调用次数,确定是否在紧接在第一循环周期之后的第二循环周期的第一时间段将内核函数加载到CPU的缓存:如果经加权的被调用次数达到了函数调用阈值次数,则在第二循环周期的第一时间段将内核函数缓存到CPU的缓存。
进一步地,在一个可选的实施例中,累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数的步骤,包括:
判断循环周期的循环次数是否达到了循环阈值次数;
如果循环周期的循环次数达到了循环阈值次数,则累计各个内核函数在第一循环周期之前的、数量等于循环阈值次数的循环周期中的第一时间段内被调用的次数。
为了达到本申请的目的,本发明实施例提供了一种用于业务系统性能优化的装置,包括存储器和处理器,
存储器,用于存储计算机可读指令;
处理器,用于执行计算机可读指令,以执行如下操作:
判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数;
如果第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对第一内核函数的被调用次数进行加权操作;其中,内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。
进一步地,在一个可选的实施例中,在判断当前被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的操作之前,处理器还执行下列操作:
累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数,以筛选出对在之前的各个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
进一步地,在一个可选的实施例中,在对第一内核函数的被调用次数进行加权操作的操作之后,处理器还执行下列操作:
根据在内核函数访问历史列表中的内核函数各自的经加权的被调用次数,确定是否在紧接在第一循环周期之后的第二循环周期的第一时间段将内核函数加载到CPU的缓存:如果经加权的被调用次数达到了函数调用阈值次数,则在第二循环周期的第一时间段将内核函数缓存到CPU的缓存。
进一步地,在一个可选的实施例中,累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数的操作,包括:
判断循环周期的循环次数是否达到了循环阈值次数;
如果循环周期的循环次数达到了循环阈值次数,则累计各个内核函数在第一循环周期之前的、数量等于循环阈值次数的循环周期中的第一时间段内被调用的次数。
本发明实施例的有益效果在于,通过在内核函数访问历史列表中,对属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的第一内核函数的被调用次数进行加权操作,业务系统的CPU的缓存的命中率得到了改善,业务系统的读取数据的效率得到了优化,业务系统的性能得到了优化。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的用于业务系统性能优化的方法的流程图;
图2为本发明实施例提供的用于业务系统性能优化的装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
操作系统应用很多存储区域,诸如硬盘、U盘、内存、CPU的缓存(cache,也称为高速缓存);其中,CPU的缓存的读取速度比非缓存存储区域的读取速度快得多,因此,当操作系统需要读取数据的时候,会首先从缓存中查找需要的数据,如果找到了则直接读取数据,如果找不到的话则从内存或者其他存储区域查找。在缓存机制中,会存在把不常用的数据读取到缓存中的现象,这种现象称为缓存污染。由于不常用的数据占用了缓存的空间,因此缓存污染降低了缓存的利用率,把不常用的数据读取到缓存意味着把常用的数据移出了缓存或者常用的数据无法存储到缓存,这样会直接降低系统的数据命中率。
传统的LINUX操作系统,CPU的缓存采用LRU(Least Recently Used,最近最少使用)算法管理CPU的缓存。当LINUX操作系统执行在周期性执行的指令的时候,有可能这个周期性执行的指令刚加载到CPU的缓存的时候,这个指令在随后的一段时间中很少受到调用,从而使得这个周期性的指令所在的CPU缓存被清空了,并且这个被清空的CPU缓存中加载了其他的指令,这造成了这个周期性执行的指令在加载到CPU的缓存之后,尚未被利用就被清除了,这会导致CPU缓存的命中率会急剧下降,缓存污染比较严重。
为了解决上述问题,一方面,本发明的实施例提供了一种用于业务系统性能优化的方法,如图1所示,该方法包括步骤S101-步骤S103。
步骤S101,判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
其中,业务系统是一种用于信息处理的硬件设施,可以广泛应用于为某项工作的完成提供有力的工具支撑。业务系统可以安装Linux操作系统。业务系统根据自身的硬件情况,以一定的循环周期来使用业务系统的CPU的缓存。在步骤S101中,业务系统正在运行第一循环周期。第一循环周期可以包括第一时间段、第二时间段……第n时间段。由于各个循环周期的周期时间是相同的,因此每个循环周期都包括第一时间段、第二时间段……第n时间段。业务系统执行的很多内核函数都是周期性地执行的,内核函数在由业务系统执行的时候,可以分解为很多个指令和数据。因此,很可能周期性地执行的内核函数的指令和数据是在各个循环周期的同一个时间段执行的。如果使得在同一个时间段执行的周期性的内核函数的指令和数据在这个时间段开始的时候已经加载到业务系统的CPU的缓存,则可以利用CPU的缓存的读取速率快的特性,以及首先从CPU的缓存中查找所需要的数据或指令的读取顺序,则可以提高CPU的缓存的命中率,并且优化了业务系统的性能。
在步骤S101中,此时是出于业务系统的第一循环周期的第一时间段,此时,业务系统调用了第一内核函数,并且判断所调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,这是为了最大可能性地判断第一内核函数是否能归类于周期性地执行的内核函数。在此,假设在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数是周期性地执行的内核函数,这是因为被调用的次数最多的前n个内核函数最有可能是周期性地执行的内核函数。因此,将属于被调用的次数最多的前n个内核函数之中的第一内核函数加载到CPU的缓存,会使得业务系统在第一循环周期之后的下一个循环周期的第一时间段的时候,在CPU的缓存中读取到最有可能是周期性地执行的内核函数的内核函数,从而优化了业务系统的性能。为了最大可能性地筛选出被调用的次数高的内核函数,可以灵活地调整n的数值。
步骤S103,如果第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对第一内核函数的被调用次数进行加权操作;其中,内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。
内核函数的被调用的次数都是存储、累计在内核函数访问历史列表之中的,因此,根据内核函数访问历史列表中所累计的各个内核函数的指令以及数据的被调用的次数,可以判断内核函数访问历史列表中进行累计的哪些内核函数的指令以及数据适合加载到CPU的缓存。然而,可以并不直接将属于第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的内核函数加载到CPU的缓存,而是为在内核函数访问历史列表中累计其被调用次数的内核函数的指令以及数据设置了函数调用阈值次数,只有其在先前的多个循环周期的第一时间段内的被调用次数达到了函数调用阈值次数的指令以及数据才能加载到CPU的缓存以应用于此后下一个循环周期的第一时间段。这样可以避免周期性地执行的内核函数的执行周期与上述循环周期并不同步而周期性地执行的内核函数加载到CPU的缓存而造成的命中率下降。例如,周期性地执行的内核函数的执行周期是五个单位时间,而循环周期是一个单位时间。为了调整周期性地执行的内核函数,以使得周期性地执行的内核函数适时地加载到CPU的缓存,可以根据这个内核函数的执行周期与循环周期的比率,给这个内核函数的被调用次数进行加权,并且结合函数调用阈值次数,使得在预期这个内核函数将要被调用执行的时候,适时地被加载到CPU的缓存。
例如,假如函数调用阈值次数是十次,则内核函数的A指令被调用执行十次会被加载到CPU的缓存;在此情况下,若对A指令进行加权操作,并且权数值为5,则可以认为A指令被调用一次,缓存记录认为是五次,这样,A指令真实调用2次就已经被加载到CPU的缓存。与此相反,假如函数调用阈值次数是十次,并且不对A指令进行加权操作,则A指令不能加载到CPU的缓存中,而是A指令仅仅存储在业务系统的非缓存存储区域中,需要从非缓存存储区域中调用A指令,这将造成从非缓存存储区域中调用A指令的次数非常多(换句话说,从非缓存存储区域中调用A指令的次数占到调用A指令的总次数的比例非常大),读取A指令的速度非常缓慢。
此外,假设在这个例子中,周期性地执行的内核函数的执行周期是十个单位时间,而循环周期是一个单位时间,在此情况下,这个内核函数的指令和数据首先是存储于非缓存存储区域中的,采用LRU-K(LRU-K算法是LRU(Least Recently Used,最近最少使用)算法的变种,其中当非缓存存储区域中的某个数据块被调用的次数达到K次,该数据块会被移动到缓存队列中(K也就是上述的函数调用阈值次数))缓存淘汰机制来运行缓存,并且在业务系统从非缓存存储区域中调用这个内核函数的指令和数据两次之后,经加权的被调用次数达到了函数调用阈值次数,当时间达到下一个循环周期的执行周期性地执行的内核函数的时间段时,周期性地执行的内核函数的指令和数据加载到CPU的缓存;此时,业务系统可以从CPU的缓存调用这个内核函数的指令和数据。从最初在非缓存存储区域中首次调用这个内核函数的指令和数据,到从CPU的缓存调用这个内核函数的指令和数据,持续时间总共是二十个单位时间。如果不对这个内核函数的指令和数据进行加权,则需要从非缓存存储区域中调用这个内核函数的指令和数据十次之后,周期性地执行的内核函数的指令和数据才能加载到CPU的缓存。从最初在非缓存存储区域中首次调用这个内核函数的指令和数据,到从CPU的缓存调用这个内核函数的指令和数据,持续时间总共是一百个单位时间。在同样的一百个单位时间中,采用对存储在非缓存存储区域中的周期性地执行的内核函数的指令和数据执行加权操作,可以使业务系统从CPU的缓存调用周期性地执行的内核函数的指令和数据五次,因此,业务系统的CPU的缓存的命中率得到了改善,业务系统的读取数据的效率得到了优化,业务系统的性能得到了优化。
进一步地,在一个可选的实施例中,在步骤S101之前,方法还包括:
累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数,以筛选出对在之前的各个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
进一步地,在一个可选的实施例中,在步骤S103之后,该方法还包括:
根据在内核函数访问历史列表中的内核函数各自的经加权的被调用次数,确定是否在紧接在第一循环周期之后的第二循环周期的第一时间段将内核函数加载到CPU的缓存:如果经加权的被调用次数达到了函数调用阈值次数,则在第二循环周期的第一时间段将内核函数缓存到CPU的缓存。
进一步地,在一个可选的实施例中,步骤S101包括:
判断循环周期的循环次数是否达到了循环阈值次数;
如果循环周期的循环次数达到了循环阈值次数,则累计各个内核函数在第一循环周期之前的、数量等于循环阈值次数的循环周期中的第一时间段内被调用的次数。
在此,并非在每一个循环周期都统计这个循环周期之前的多个循环周期中的内核函数的被调用的次数,因为这会增加业务系统的硬件资源的占用。在这个实施例中,累计从某个时刻开始的循环周期的循环次数,只有在循环周期的循环次数递增达到了循环阈值次数的时刻(这是第一循环周期开始之前的时刻),才统计在第一循环周期之前的一段时间的各个内核函数被调用的次数,这段时间中,循环周期的循环次数等于循环阈值次数。通过这种方式,减少了为了累计内核函数的被调用的次数而造成的对于业务系统的硬件资源的占用。
为了解决上述问题,本发明实施例提供了一种用于业务系统性能优化的装置,如图2所示,该装置包括存储器10和处理器20。
存储器10,用于存储计算机可读指令;
处理器20,用于执行计算机可读指令,以执行如下操作:
判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数;
如果第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对第一内核函数的被调用次数进行加权操作;其中,内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。
进一步地,在一个可选的实施例中,在判断当前被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的操作之前,处理器20还执行下列操作:
累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数,以筛选出对在之前的各个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
进一步地,在一个可选的实施例中,在对第一内核函数的被调用次数进行加权操作的操作之后,处理器20还执行下列操作:
根据在内核函数访问历史列表中的内核函数各自的经加权的被调用次数,确定是否在紧接在第一循环周期之后的第二循环周期的第一时间段将内核函数加载到CPU的缓存:如果经加权的被调用次数达到了函数调用阈值次数,则在第二循环周期的第一时间段将内核函数缓存到CPU的缓存。
进一步地,在一个可选的实施例中,累计各个内核函数在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数的操作,包括:
判断循环周期的循环次数是否达到了循环阈值次数;
如果循环周期的循环次数达到了循环阈值次数,则累计各个内核函数在第一循环周期之前的、数量等于循环阈值次数的循环周期中的第一时间段内被调用的次数。
虽然本发明所揭露的实施方式如上,但上述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (8)
1.一种用于业务系统性能优化的方法,其特征在于,包括:
判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数;
如果所述第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对所述第一内核函数的被调用次数进行加权操作;其中,所述内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。
2.根据权利要求1所述的方法,其特征在于,在所述判断当前被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的步骤之前,所述方法还包括:
累计各个内核函数在所述第一循环周期之前的多个循环周期中的第一时间段内被调用的次数,以筛选出对在之前的各个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
3.根据权利要求1所述的方法,其特征在于,在所述对所述第一内核函数的被调用次数进行加权操作的步骤之后,所述方法还包括:
根据在所述内核函数访问历史列表中的所述内核函数各自的经加权的被调用次数,确定是否在紧接在所述第一循环周期之后的第二循环周期的第一时间段将内核函数加载到CPU的缓存:如果经加权的被调用次数达到了函数调用阈值次数,则在所述第二循环周期的第一时间段将所述内核函数缓存到所述CPU的缓存。
4.根据权利要求1所述的方法,其特征在于,所述累计各个内核函数在所述第一循环周期之前的多个循环周期中的第一时间段内被调用的次数的步骤,包括:
判断所述循环周期的循环次数是否达到了循环阈值次数;
如果所述循环周期的循环次数达到了循环阈值次数,则累计各个内核函数在所述第一循环周期之前的、数量等于所述循环阈值次数的循环周期中的第一时间段内被调用的次数。
5.一种用于业务系统性能优化的装置,包括存储器和处理器,
所述存储器,用于存储计算机可读指令;
所述处理器,用于执行所述计算机可读指令,以执行如下操作:
判断在第一循环周期的第一时间段的时候被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数;
如果所述第一内核函数属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数,则在内核函数访问历史列表中,对所述第一内核函数的被调用次数进行加权操作;其中,所述内核函数访问历史列表用于确定将要被加载到CPU的缓存的内核函数。
6.根据权利要求5所述的装置,其特征在于,在所述判断当前被调用的第一内核函数是否属于在第一循环周期之前的多个循环周期中的第一时间段内被调用的次数最多的前n个内核函数的操作之前,所述处理器还执行下列操作:
累计各个内核函数在所述第一循环周期之前的多个循环周期中的第一时间段内被调用的次数,以筛选出对在之前的各个循环周期中的第一时间段内被调用的次数最多的前n个内核函数。
7.根据权利要求5所述的装置,其特征在于,在所述对所述第一内核函数的被调用次数进行加权操作的操作之后,所述处理器还执行下列操作:
根据在所述内核函数访问历史列表中的所述内核函数各自的经加权的被调用次数,确定是否在紧接在所述第一循环周期之后的第二循环周期的第一时间段将内核函数加载到CPU的缓存:如果经加权的被调用次数达到了函数调用阈值次数,则在所述第二循环周期的第一时间段将所述内核函数缓存到所述CPU的缓存。
8.根据权利要求5所述的装置,其特征在于,所述累计各个内核函数在所述第一循环周期之前的多个循环周期中的第一时间段内被调用的次数的操作,包括:
判断所述循环周期的循环次数是否达到了循环阈值次数;
如果所述循环周期的循环次数达到了循环阈值次数,则累计各个内核函数在所述第一循环周期之前的、数量等于所述循环阈值次数的循环周期中的第一时间段内被调用的次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910578813.1A CN110399316B (zh) | 2019-06-28 | 2019-06-28 | 一种用于业务系统性能优化的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910578813.1A CN110399316B (zh) | 2019-06-28 | 2019-06-28 | 一种用于业务系统性能优化的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399316A true CN110399316A (zh) | 2019-11-01 |
CN110399316B CN110399316B (zh) | 2021-10-01 |
Family
ID=68323649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910578813.1A Active CN110399316B (zh) | 2019-06-28 | 2019-06-28 | 一种用于业务系统性能优化的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399316B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0391871A2 (en) * | 1989-04-03 | 1990-10-10 | International Business Machines Corporation | Method for managing a prioritized cache |
CN101989236A (zh) * | 2010-11-04 | 2011-03-23 | 浙江大学 | 一种指令缓存锁实现方法 |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和系统 |
CN103440207A (zh) * | 2013-07-31 | 2013-12-11 | 北京智谷睿拓技术服务有限公司 | 缓存方法及装置 |
US20140129779A1 (en) * | 2012-11-06 | 2014-05-08 | Facebook, Inc. | Cache replacement policy for data with strong temporal locality |
CN104077241A (zh) * | 2014-07-14 | 2014-10-01 | 华为技术有限公司 | 缓存淘汰算法切换处理方法及装置 |
CN104641347A (zh) * | 2013-03-11 | 2015-05-20 | 华为技术有限公司 | 函数调用方法、装置和终端设备 |
US20170139706A1 (en) * | 2015-11-18 | 2017-05-18 | Oracle International Corporation | Optimizing thread selection at fetch, select, and commit stages of processor core pipeline |
CN108694134A (zh) * | 2017-04-10 | 2018-10-23 | 三星电子株式会社 | 在混合dram/nand存储器中降低读取-修改-写入开销的技术 |
CN108763103A (zh) * | 2018-05-24 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
CN109074312A (zh) * | 2016-04-27 | 2018-12-21 | 超威半导体公司 | 基于高速缓存测试区域来为预取选择高速缓存老化策略 |
CN109739646A (zh) * | 2018-12-28 | 2019-05-10 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据处理方法及装置 |
-
2019
- 2019-06-28 CN CN201910578813.1A patent/CN110399316B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0391871A2 (en) * | 1989-04-03 | 1990-10-10 | International Business Machines Corporation | Method for managing a prioritized cache |
CN101989236A (zh) * | 2010-11-04 | 2011-03-23 | 浙江大学 | 一种指令缓存锁实现方法 |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和系统 |
US20140129779A1 (en) * | 2012-11-06 | 2014-05-08 | Facebook, Inc. | Cache replacement policy for data with strong temporal locality |
CN104641347A (zh) * | 2013-03-11 | 2015-05-20 | 华为技术有限公司 | 函数调用方法、装置和终端设备 |
CN103440207A (zh) * | 2013-07-31 | 2013-12-11 | 北京智谷睿拓技术服务有限公司 | 缓存方法及装置 |
CN104077241A (zh) * | 2014-07-14 | 2014-10-01 | 华为技术有限公司 | 缓存淘汰算法切换处理方法及装置 |
US20170139706A1 (en) * | 2015-11-18 | 2017-05-18 | Oracle International Corporation | Optimizing thread selection at fetch, select, and commit stages of processor core pipeline |
CN109074312A (zh) * | 2016-04-27 | 2018-12-21 | 超威半导体公司 | 基于高速缓存测试区域来为预取选择高速缓存老化策略 |
CN108694134A (zh) * | 2017-04-10 | 2018-10-23 | 三星电子株式会社 | 在混合dram/nand存储器中降低读取-修改-写入开销的技术 |
CN108763103A (zh) * | 2018-05-24 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种内存管理方法、装置、系统及计算机可读存储介质 |
CN109739646A (zh) * | 2018-12-28 | 2019-05-10 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
张伯毅: "《LRU.LFU和LRU-K的解释与区别》", 《HTTPS://BLOG.CSDN.NET/ZHANGLONG_4444/ARTICLE/DETAILS/88344953》 * |
徐涛: "《面向数据Cache的片上存储动态优化》", 《测控技术》 * |
黄涛等: "一种降低末级高速缓存污染的软件控制插入策略", 《电子学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110399316B (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010766B2 (en) | Increasing buffer locality during multiple table access operations | |
US8825959B1 (en) | Method and apparatus for using data access time prediction for improving data buffering policies | |
RU2348067C2 (ru) | Способы и устройства для упреждающего управления памятью | |
US20110066830A1 (en) | Cache prefill on thread migration | |
US20060294330A1 (en) | Managing memory pages | |
US20140258672A1 (en) | Demand determination for data blocks | |
US11520588B2 (en) | Prefetch filter table for storing moderately-confident entries evicted from a history table | |
CN113688062B (zh) | 用于存储数据的方法和相关产品 | |
US10853250B2 (en) | Storage management method, electronic device and computer program product | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
CN116107754A (zh) | 一种面向深度神经网络的内存管理方法及系统 | |
CN115048142A (zh) | 缓存访问命令处理系统、方法、装置、设备和存储介质 | |
US10877893B2 (en) | Adaptive pre-fetch | |
CN112597076B (zh) | 一种面向Spark的基于数据感知的缓存替换方法及系统 | |
CN110990300B (zh) | 一种基于使用热度的高速缓冲存储器替换方法及系统 | |
CN110399316A (zh) | 一种用于业务系统性能优化的方法和装置 | |
US11816103B1 (en) | Dynamic prefetching for database queries | |
CN107967306B (zh) | 一种存储系统中关联块的快速挖掘方法 | |
US10210097B2 (en) | Memory system and method for operating the same | |
US7937541B2 (en) | Speed selective table scan operation | |
Banerjee et al. | A New Proposed Hybrid Page Replacement Algorithm (HPRA) in Real Time Systems. | |
CN113296934A (zh) | 调度进程的方法以及装置 | |
CN110569261A (zh) | 一种用于更新高速缓存区中所存储的资源的方法和装置 | |
US11403232B2 (en) | Sequence thrashing avoidance via fall through estimation | |
CN116467353B (zh) | 一种基于lru差异化的自适应调节的缓存方法及系统 |
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 |