CN112230964A - 应用程序开发、应用程序运行方法、装置、设备及介质 - Google Patents
应用程序开发、应用程序运行方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112230964A CN112230964A CN202011186837.1A CN202011186837A CN112230964A CN 112230964 A CN112230964 A CN 112230964A CN 202011186837 A CN202011186837 A CN 202011186837A CN 112230964 A CN112230964 A CN 112230964A
- Authority
- CN
- China
- Prior art keywords
- program
- running
- hardware
- interval
- application program
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims abstract description 35
- 230000015654 memory Effects 0.000 claims description 59
- 230000006870 function Effects 0.000 claims description 34
- 238000011161 development Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 230000001105 regulatory effect Effects 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 58
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000007334 memory performance Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本申请实施例公开了一种应用程序开发、应用程序运行方法、装置、设备以及介质。该方法包括:运行原始应用程序,根据原始应用程序运行过程中的性能需求对原始应用程序进行划分,得到至少两个程序运行区间,确定各个程序运行区间内硬件的硬件工作参数,根据程序运行区间和硬件工作参数更新所述原始应用程序,得到目标应用程序。运行目标应用程序,响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,通过调节后的硬件运行目标应用程序。本申请实施例中,将程序运行区间与硬件工作参数设置在更新后的应用程序之中,当程序运行到运行区间时根据预先设置好的硬件工作参数调节硬件,提高了硬件调节的准确性与及时性。
Description
技术领域
本申请涉及终端技术领域,具体涉及一种应用程序开发、应用程序运行方法、装置、设备及介质。
背景技术
动态电压频率调节是一种在应用程序运行过程中动态调节硬件电压以及频率的技术,有利于提高应用程序运行指令,并降低功耗。
相关技术中,操作系统在应用程序运行过程中,根据应用程序的历史运行记录对应用程序的性能需求进行预测,从而根据性能预测结果动态调整硬件的电压和频率。比如,当性能预测结果指示应用程序的性能需求提高时,操作系统提高中央处理器(CentralProcessing Unit,CPU)的电压以及工作频率。
发明内容
为了解决相关技术的问题,本申请实施例提供了一种应用程序开发、应用程序运行方法、装置、设备及介质。所述技术方案如下:
一方面,提供了一种应用程序开发方法,所述方法包括:
运行原始应用程序;
根据所述原始应用程序运行过程中的性能需求对所述原始应用程序进行划分,得到至少两个程序运行区间,其中,不同程序运行区间对应不同性能需求;
确定各个所述程序运行区间内硬件的硬件工作参数,其中,硬件在所述硬件工作参数下工作时满足所述程序运行区间内的性能需求;
根据所述程序运行区间和所述硬件工作参数更新所述原始应用程序,得到目标应用程序,所述目标应用程序用于在运行过程中基于所述程序运行区间和所述硬件工作参数调节硬件。
另一方面,提供了一种应用程序运行方法,所述方法包括:
运行目标应用程序,其中,所述目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求;
响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,所述硬件调节请求中包含所述目标程序运行区间对应的目标硬件工作参数,所述操作系统用于根据所述目标硬件工作参数调节硬件,其中,硬件在所述目标硬件工作参数下工作时满足所述目标程序运行区间内的性能需求;
通过调节后的硬件运行所述目标应用程序。
另一方面,提供了一种应用程序开发装置,所述装置包括:
第一运行模块,用于运行原始应用程序;
划分模块,用于根据所述原始应用程序运行过程中的性能需求对所述原始应用程序进行划分,得到至少两个程序运行区间,其中,不同程序运行区间对应不同性能需求;
确定模块,用于确定各个所述程序运行区间内硬件的硬件工作参数,其中,硬件在所述硬件工作参数下工作时满足所述程序运行区间内的性能需求;
程序更新模块,用于根据所述程序运行区间和所述硬件工作参数更新所述原始应用程序,得到目标应用程序,所述目标应用程序用于在运行过程中基于所述程序运行区间和所述硬件工作参数调节硬件。
另一方面,提供了一种应用程序运行装置,所述装置包括:
第二运行模块,用于运行目标应用程序,其中,所述目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求;
调节模块,用于响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,所述硬件调节请求中包含所述目标程序运行区间对应的目标硬件工作参数,所述操作系统用于根据所述目标硬件工作参数调节硬件,其中,硬件在所述目标硬件工作参数下工作时满足所述目标程序运行区间内的性能需求;
第三运行模块,用于通过调节后的硬件运行所述目标应用程序。
另一方面,提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的应用程序开发方法,或,应用程序运行方法。
另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的应用程序开发方法,或,应用程序运行方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面或者上述方面的各种可选实现方式中提供的应用程序开发方法,或,应用程序运行方法。
本申请实施例中,计算机设备根据原始应用程序运行时的性能需求,将原始应用程序划分为至少两个程序运行区间,并为各个程序运行区间设置满足运行时性能需求的硬件工作参数,从而对原始应用程序进行更新得到目标应用程序,后续目标应用程序运行过程中,计算机设备即可根据当前所处的程序运行区间,采用对应的硬件工作参数进行硬件调节,提高应用程序的运行质量;并且,由于程序运行区间和硬件工作参数被预先添加至应用程序,因此运行至某一程序运行区间时,计算机设备可以及时进行硬件调节,提高了硬件调节的准确性和实时性。
附图说明
图1是本申请一个示意性实施例提供的应用程序开发方法的流程图;
图2是本申请另一个实施例提供的应用程序开发方法的流程图;
图3是本申请一个示例性实施例提供的程序运行过程中硬件性能参数的变化图;
图4是本申请一个示例性实施例提供的程序运行区间与硬件频率功耗曲线对照图;
图5是本申请一个实施例提供的在原始应用程序中插入运行区间信息表图;
图6是本申请一个实施例提供的应用程序运行方法的流程图;
图7是本申请另一个示例性实施例提供的应用程序运行方法的流程图;
图8是本申请一个实施例提供的应用程序开发装置的结构示意图;
图9是本申请一个实施例提供的应用程序运行装置的结构示意图;
图10是本申请一个实施例提供的一个实施例提供的计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
相关技术中,根据应用程序的历史运行记录对应用程序的性能需求进行预测,从而根据性能预测结果动态调整硬件的电压和频率,然而性能预测的结果与当前任务的性能需求相比存在一定的延时,因此频率以及电压调节的准确性和实时性较差。
而本申请实施例提供的方法中,在应用程序开发过程中预先得到了程序运行过程中各程序运行区间的性能需求,并为各个程序运行区间设置满足运行时性能需求的硬件工作参数,从而得到更新后的应用程序。而在后续应用程序运行的过程中,只需要根据应用程序中预先添加的程序运行区间和硬件工作参数的对应信息,在应用程序运行至某一程序运行区间时,计算机设备可以及时地对硬件进行相应的调节,而并不需要对硬件的性能需求进行预测,因此提升了硬件调节的实时性与准确性。
请参考图1,其示出了本申请一个示例性实施例提供的应用程序开发方法的流程图,本实施例以该方法用于计算机设备为例进行说明,该应用程序开发方法包括:
步骤101,运行原始应用程序。
可选的,该原始应用程序为经过计算机设备编译后得到的可执行程序。
在一种可能的实施方式中,在应用程序开发阶段,计算机设备可以在真实的运行环境下运行原始应用程序,或是在仿真环境中运行原始应用程序。
步骤102,根据原始应用程序运行过程中的性能需求对原始应用程序进行划分,得到至少两个程序运行区间,其中,不同程序运行区间对应不同性能需求。程序是由指令组成的,每一条指令的执行都有对应的性能需求,程序运行阶段的指令对应的性能需求在预设的范围内,则可以将该阶段作为一个程序运行区间。在原始应用程序运行过程中,将对应的性能需求相似的程序运行区间作为相同的程序运行区间,将对应的性能需求相差较大的程序运行区间作为不同的程序运行区间。
步骤103,确定各个程序运行区间内硬件的硬件工作参数,其中,硬件在硬件工作参数下工作时满足程序运行区间内的性能需求。
可选的,该硬件包括处理器和存储器,处理器负责计算机运算以及控制,是信息处理、程序运行的执行单元,而存储器计算机系统中的记忆设备,用来存放程序和数据,在程序的执行过程中,处理器需要从存储器中调取指令或数据,因此,处理器与存储器的工作状态均会影响程序的运行质量,相应的,计算机设备需要调整处理器和存储器的工作状态,从而达到程序运行区间内的性能需求。
硬件工作参数决定了硬件的工作状态,而硬件的状态影响程序运行的性能。因此,确定各个程序运行区间内硬件的硬件工作参数可以使硬件的工作状态满足应用程序在程序运行区间运行的性能需求,避免性能不足导致程序运行卡顿问题,或是性能过高造成功耗过高的问题。
可选的,计算机设备多次试取程序运行区间内硬件的硬件工作参数,当应用程序运行至程序运行区间时,使应用程序在程序运行区间对应的试取硬件工作参数下运行,当硬件在某一硬件工作参数下工作时满足程序运行区间内的性能需求时,确定该硬件工作参数为该程序运行区间对应的硬件工作参数。
步骤104,根据程序运行区间和硬件工作参数更新原始应用程序,得到目标应用程序,目标应用程序用于在运行过程中基于程序运行区间和硬件工作参数调节硬件。
其中,目标应用程序为后续在用户终端安装运行的应用程序,由于在目标应用程序中加入了程序运行区间与硬件工作参数的对应关系信息,因此当程序运行至某一程序运行区间时,可以根据预先设置的硬件工作参数调节硬件,使硬件在该硬件工作参数下运行时,满足该程序运行区间对应的性能需求。
综上所述,本申请实施例中,计算机设备根据原始应用程序运行时的性能需求,将原始应用程序划分为至少两个程序运行区间,并为各个程序运行区间设置满足运行时性能需求的硬件工作参数,从而对原始应用程序进行更新得到目标应用程序,在后续目标应用程序运行过程中,计算机设备只需要根据程序中预先设置的运行区间以及对应的硬件工作参数信息进行调节,提高了硬件调节的准确性和实时性。
请参考图2,其示出了本申请另一个示例性实施例提供的应用程序开发方法的流程图,本实施例以该方法用于计算机设备为例进行说明,该应用程序开发方法包括:
步骤201,运行原始应用程序。
本步骤的实施方式可以参照步骤101,此处不做赘述。
步骤202,获取原始应用程序运行过程中硬件的硬件性能参数。
硬件性能参数是用于表征应用程序运行过程中硬件工作性能的参数,其中硬件性能参数越高,表明硬件以当前工作参数工作时能够满足程序的性能需求,反之,硬件性能参数越低,表明硬件以当前工作参数工作时无法满足程序的性能需求。因此硬件性能参数可以反映程序运行的性能需求。
在一种可能的实施方式中,计算机设备在运行原始应用程序的过程中,通过性能检测工具获取硬件的硬件性能参数。
可选的,该硬件性能参数包括如下至少一种:缓存未命中率、总线周期指令数(Instructions Per Cycle,IPC)和分支误预测率(Branch misprediction)。
步骤203,根据硬件性能参数确定原始应用程序在不同运行阶段下的性能需求。
缓存未命中率为在程序运行过程中,处理器在缓存中获取不到所需数据的概率。在应用程序运行的过程中,若缓存未命中率高,则处理器需要频繁地从内存中获取数据,程序运行延时高,由于处理器获取不到数据,即使计算速度再快也不能加快程序的运行,因此在缓存未命中率高的情况下,程序运行对处理器性能需求相对较低,对存储器的性能需求相对较高。因此,在一种可能的实施方式中,计算机设备基于缓存未命中率确定原始应用程序在不同运行阶段下的性能需求。其中,该缓冲未命中率包括指令缓存未命中率、数据缓存未命中率、L2缓存未命中率和L3缓存未命中率中的至少一种。
可选的,计算机设备根据缓存未命中率与至少一级预设阈值之间的关系,确定原始应用程序在不同运行阶段下的性能需求。
在一些实施例中,当设置有两级预设阈值(第一级预设阈值和第二级预设阈值)时,响应于缓存未命中率低于第一级预设阈值,计算机设备确定原始应用程序的性能需求为第一性能需求,第一性能需求对应第一程序运行区间;
响应于缓存未命中率高于第一级预设阈值且低于第二级预设阈值,计算机设备确定原始应用程序的性能需求为第二性能需求,第二性能需求对应第二程序运行区间;
响应于缓存未命中率高于第二级预设阈值,计算机设备确定原始应用程序的性能需求为第三性能需求,第三性能需求对应第三程序运行区间。
当然,计算机设备可以设置一级预设阈值或者至少三级预设阈值,从而划分得到两种或者至少四种程序运行区间,本申请实施例并不对此进行限定。
请参考图3,其示出了本申请一个示例性实施例提供程序运行过程中硬件性能参数的变化图,其中,该硬件性能参数包括缓存未命中率、数据缓存未命中率、L2缓存未命中率和L3缓存未命中率、总线周期指令数和分支误预测率。
如图3所示,程序运行过程中,当缓存命中率低于第一级阈值(比如50%),计算机设备确定原始程序的性能需求为第一性能需求,从而将该缓存命中率对应运行区间确定为程序运行区间A。
当缓存命中率高于第一级阈值,低于第二级阈值(比如90%)时,计算机设备确定原始程序的性能需求为第二性能需求,从而将该缓存命中率对应运行区间确定为程序运行区间B。
当缓存命中率高于第二级阈值时,计算机设备确定原始程序的性能需求为第三性能需求,从而将该缓存命中率对应运行区间确定为程序运行区间C。
步骤204,确定不同运行阶段对应的程序指令起始地址和程序指令结束地址。本申请实施例中,由于程序运行区间以程序指令为单位进行划分,因此基于硬件性能参数确定出不同运行阶段下的性能需求后,计算机设备需要进一步获取各个运行阶段内程序指令的程序指令起始地址和程序指令结束地址,以便后续基于上述地址确定程序运行区间对应的程序指令地址范围。
步骤205,根据程序指令起始地址和程序指令结束地址对原始应用程序进行划分,得到至少两个程序运行区间。
由于应用程序是由指令组成的,程序指令起始地址和程序指令结束地址之间包含多条程序指令,因此计算机设备根据程序指令起始地址和程序指令结束地址对原始应用程序进行划分,才能得到完整的程序运行区间。
步骤206,确定各个程序运行区间内的硬件工作参数。
可选的,影响程序性能的硬件包括处理器、缓存、外部存储器,因此计算机设备通过调节其各自对应的硬件工作参数,使硬件在硬件工作参数下工作时满足程序运行区间内的性能需求。
可选的,计算机设备基于硬件性能功耗曲线,确定各个程序运行区间内处理器的处理器工作频率、处理器缓存的缓存工作频率和外部存储器的存储器工作频率中的至少一种。
其中,硬件性能功耗曲线是硬件研发过程中得到的硬件工作参数与功耗的关系曲线,由于硬件的硬件工作参数是有取值范围的,因此计算机设备基于硬件性能功耗曲线确定硬件工作参数可以使硬件工作参数处于合理取值范围,从而避免对硬件造成损害,同时避免功耗过高的问题。
结合上述步骤中的示例,在一些的实施例中,第一程序运行区间内的处理器工作频率高于第二程序运行区间内的处理器工作频率,第二程序运行区间内的处理器工作频率高于第三程序运行区间内的处理器工作频率;
第一程序运行区间内的缓存工作频率低于第二程序运行区间内的缓存工作频率,第二程序运行区间内的缓存工作频率低于第三程序运行区间内的缓存工作频率。
第一程序运行区间内的存储器工作频率低于第二程序运行区间内的存储器工作频率,第二程序运行区间内的存储器工作频率低于第三程序运行区间内的存储器工作频率
请参考图4,其示出了本申请一个示例性实施例提供的程序运行区间与硬件性能功耗曲线对照图。
由图3可知,程序运行区间A对应的缓存未命中率低于程序运行区间B对应的缓存未命中率,且程序运行区间B对应的缓存未命中率低于程序运行区间C对应的缓存未命中率,即应用程序在程序运行区间A处于正常运行状态,在程序运行区间B处于有数据传送或指令执行延时状态,在程序运行区间C处于程序运行停滞状态。由于缓存未命中率越低,程序运行对处理器的性能需求越高,而程序运行对处理器的性能需求与处理器工作频率正相关,因此确定程序运行区间A对应的处理器工作频率高于程序运行区间B对应的处理器工作频率,程序运行区间B对应的处理器工作频率高于程序运行区间C对应的处理器工作频率。如图4所示,开发人员将处理器性能功耗区间41上A点处的处理器工作频率确定为程序运行区间A内处理器的工作频率,将处理器性能功耗曲线41上B点处的处理器工作频率确定为程序运行区间B内处理器的工作频率,将处理器性能功耗区间41上C点处的处理器工作频率确定为程序运行区间C内处理器的工作频率。
由于缓存未命中率越高,处理器会越频繁地从存储器中寻找指令以及数据,因此程序运行对各种存储器的性能需求越高,而存储器工作频率影响存储器向处理器发送指令以及数据的速率,程序运行对各种存储器的性能需求与存储器工作频率正相关,因此确定程序运行区间A对应的缓存工作频率高于程序运行区间B对应的缓存工作频率,程序运行区间B对应的缓存工作频率高于程序运行区间C对应的缓存工作频率,如图4所示,开发人员将缓存性能功耗曲线42上A点处的缓存工作频率确定为程序运行区间A内缓存的工作频率,将缓存性能功耗区间42上B点处的缓存工作频率确定为程序运行区间B内缓存的工作频率,将缓存性能功耗区间42上C点处的处理器工作频率确定为程序运行区间C内缓存的工作频率。
同时确定程序运行区间A对应的外部存储器工作频率高于程序运行区间B对应的外部存储器工作频率,程序运行区间B对应的外部存储器工作频率高于程序运行区间C对应的外部存储器工作频率,如图4所示,开发人员将外部存储器性能功耗曲线43上A点处的外部存储器工作频率确定为程序运行区间A内外部存储器的工作频率,将外部存储器性能功耗曲线43上B点处的外部存储器工作频率确定为程序运行区间B内外部存储器的工作频率,将外部存储器性能功耗区间43上C点处的外部存储器工作频率确定为程序运行区间C内外部存储器的工作频率。
在确定各个运行区间对应的工作频率时还需要判断工作频率对应的功耗是否合适,使应用程序在各个运行区间运行时,不仅满足性能需求,功耗也能做到尽可能低。
步骤207,在原始应用程序中各个程序运行区间的起始运行位置插入调用函数,并在原始应用程序中插入运行区间信息表,得到目标应用程序,运行区间信息表中包含程序运行区间与硬件工作参数之间的对应关系,调用函数用于调用目标函数向操作系统发送硬件调节请求。
其中,目标函数的作用是当程序运行至某一程序运行区间时,获取运行区间信息表中对应的硬件工作参数,将含有该硬件工作参数的请求发送给操作系统,以便操作系统根据该硬件工作参数对相应硬件进行调节。
示意性的,如图5所示,原始应用程序50被划分为第一程序运行区间51,第二程序运行区间52以及第三程序运行区间53。更新原始应用程序50时,开发人员分别在第一程序运行区间51,第二程序运行区间52以及第三程序运行区间53的程序指令起始位置插入调用函数,并在原始应用程序50(可以是特定的section)中插入运行区间信息表54,最终得到目标应用程序,其中,该运行区间信息表54中包括各个程序运行区间对应的起始位置以及终止位置地址,以及对应的硬件工作参数。当目标应用程序运行到某一个程序运行区间的起始位置时,调用函数调用目标函数向操作系统发送硬件调节请求,操作系统根据目标函数发送的硬件工作参数调节相应硬件工作参数。
本实施例中,基于硬件性能功耗曲线,确定各个程序运行区间内处理器工作频率、处理器缓存的缓存工作频率和外部存储器的存储器工作频率,有助于在保证程序运行质量的同时,降低硬件功耗。
请参考图6,其示出了本申请一个示例性实施例提供的应用程序运行方法的流程图,该应用程序运行方法包括:
步骤601,运行目标应用程序,其中,目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求。
可选的,通过上述实施例提供的方法生成目标应用程序后,用户可以使用终端(计算机设备)从网络下载该目标应用程序,从而通过终端安装并运行该目标应用程序。
步骤602,响应于运行至目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,硬件调节请求中包含标程序运行区间对应的目标硬件工作参数,操作系统用于根据目标硬件工作参数调节硬件,其中,硬件在目标硬件工作参数下工作时满足目标程序运行区间内的性能需求。
终端运行目标应用程序过程中,当运行至预先划分的若干程序运行区间中的目标程序运行区间时,即触发向操作系统发送包含该目标程序运行区间对应目标硬件工作参数的硬件调节请求。相应的,操作系统根据请求中包含的目标硬件工作参数,通过动态电压频率调节(Dynamic Voltage and Frequency Scaling,DVFS)驱动,根据目标硬件工作参数调节硬件,以满足目标程序运行区间内的性能需求,提高应用程序运行质量。
步骤603,通过调节后的硬件运行目标应用程序。
应用程序运行过程中,每运行至预先划分的程序运行区间,即触发操作系统根据预先设置的硬件工作参数进行硬件调节,无需实时进行性能预测,避免在性能预测时消耗运算资源,提高了硬件调节的准确性和实时性。
综上所述,本申请实施例中,计算机设备根据原始应用程序运行时的性能需求,将原始应用程序划分为至少两个程序运行区间,并为各个程序运行区间设置满足运行时性能需求的硬件工作参数,从而对原始应用程序进行更新得到目标应用程序,后续目标应用程序运行过程中,计算机设备即可根据当前所处的程序运行区间,采用对应的硬件工作参数进行硬件调节,提高应用程序的运行质量;并且,由于程序运行区间和硬件工作参数被预先添加至应用程序,因此运行至某一程序运行区间时,计算机设备可以及时进行硬件调节,提高了硬件调节的准确性和实时性。
请参考图7,其示出了本申请另一个示例性实施例提供的应用程序运行方法的流程图,该应用程序运行方法包括:
步骤701,运行目标应用程序,其中,目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求。
本步骤的实施方式可以参照步骤601,此处不做赘述。
步骤702,响应于运行至目标程序运行区间的起始运行位置,通过调用函数调用目标函数。
由于目标应用程序中,各个程序运行区间对应的起始运行位置插入后调用函数,因此当运行至目标程序运行区间的起始运行位置时,终端即通过调用函数调用目标函数。
可选的,由于不同程序运行区间对应的硬件工作参数不同,因此通过调用函数调用目标函数时,还需要传入目标程序运行区间对应的区间标识,以便后续基于该区间标识确定对应的目标硬件工作参数。
步骤703,通过执行目标函数,从运行区间信息表中获取目标程序运行区间对应的目标硬件工作参数,并向操作系统发送硬件调节请求。
在一种可能的实施方式中,终端执行目标函数时,根据目标程序运行区间对应的区间标识,从运行区间信息表中查询目标程序运行区间对应的目标应用工作参数,从而根据该目标硬件工作参数生成硬件调用请求,并进一步将硬件调用请求发送至操作系统。
步骤704,通过调节后的硬件运行目标应用程序。
本步骤的实施方式可以参照步骤604,此处不做赘述。
请参考图8,其示出了本申请一个实施例提供的应用程序开发装置的结构示意图。该装置包括:第一运行模块、划分模块、确定模块、程序更新模块。
第一运行模块801,用于运行原始应用程序;
划分模块802,用于根据所述原始应用程序运行过程中的性能需求对所述原始应用程序进行划分,得到至少两个程序运行区间,其中,不同程序运行区间对应不同性能需求;
确定模块803,用于确定各个所述程序运行区间内硬件的硬件工作参数,其中,硬件在所述硬件工作参数下工作时满足所述程序运行区间内的性能需求;
程序更新模块804,用于根据所述程序运行区间和所述硬件工作参数更新所述原始应用程序,得到目标应用程序,所述目标应用程序用于在运行过程中基于所述程序运行区间和所述硬件工作参数调节硬件。
可选的,所述划分模块802,包括:
获取单元,用于获取所述原始应用程序运行过程中硬件的硬件性能参数;
第一确定单元,用于根据所述硬件性能参数确定所述原始应用程序在不同运行阶段下的性能需求;
第二确定单元,用于确定不同运行阶段对应的程序指令起始地址和程序指令结束地址;
划分单元,用于根据所述程序指令起始地址和所述程序指令结束地址对所述原始应用程序进行划分,得到至少两个所述程序运行区间。
可选的,所述硬件性能参数包括缓存未命中率,所述缓存未命中率包括指令缓存未命中率、数据缓存未命中率、L2缓存未命中率和L3缓存未命中率中的至少一种;
可选的,所述第一确定单元,用于:
根据所述缓存未命中率与至少一级预设阈值之间的关系,确定所述原始应用程序在不同运行阶段下的性能需求。
可选的,所述第一确定单元,还用于:
响应于所述缓存未命中率低于第一级预设阈值,确定所述原始应用程序的性能需求为第一性能需求,所述第一性能需求对应第一程序运行区间;
响应于所述缓存未命中率高于所述第一级预设阈值且低于第二级预设阈值,确定所述原始应用程序的性能需求为第二性能需求,所述第二性能需求对应第二程序运行区间;
响应于所述缓存未命中率高于所述第二级预设阈值,确定所述原始应用程序的性能需求为第三性能需求,所述第三性能需求对应第三程序运行区间。
可选的,所述确定模块803,用于:
基于硬件性能功耗曲线,确定各个所述程序运行区间内处理器的处理器工作频率、处理器缓存的缓存工作频率和外部存储器的存储器工作频率中的至少一种;
其中,所述第一程序运行区间内的所述处理器工作频率高于所述第二程序运行区间内的所述处理器工作频率,所述第二程序运行区间内的所述处理器工作频率高于所述第三程序运行区间内的所述处理器工作频率;
所述第一程序运行区间内的所述缓存工作频率低于所述第二程序运行区间内的所述缓存工作频率,所述第二程序运行区间内的所述缓存工作频率低于所述第三程序运行区间内的所述缓存工作频率;
所述第一程序运行区间内的所述存储器工作频率低于所述第二程序运行区间内的所述存储器工作频率,所述第二程序运行区间内的所述存储器工作频率低于所述第三程序运行区间内的所述存储器工作频率。
可选的,所述程序更新模块804,用于:
在所述原始应用程序中各个所述程序运行区间的起始运行位置插入调用函数,并在所述原始应用程序中插入运行区间信息表,得到所述目标应用程序,所述运行区间信息表中包含所述程序运行区间与所述硬件工作参数之间的对应关系,所述调用函数用于调用目标函数向操作系统发送硬件调节请求。
请参考图9,其示出了本申请一个实施例提供的应用程序运行装置的结构示意图。该装置包括:第二运行模块、调节模块、第三运行模块。
第二运行模块901,用于运行目标应用程序,其中,所述目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求;
调节模块902,用于响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,所述硬件调节请求中包含所述目标程序运行区间对应的目标硬件工作参数,所述操作系统用于根据所述目标硬件工作参数调节硬件,其中,硬件在所述目标硬件工作参数下工作时满足所述目标程序运行区间内的性能需求;
第三运行模块903,用于通过调节后的硬件运行所述目标应用程序。
可选的,所述目标应用程序中插入有调用函数以及运行区间信息表,所述运行区间信息表中包含程序运行区间与硬件工作参数之间的对应关系;
可选的,所述调节模块902,包括:
调用单元,用于响应于运行至所述目标程序运行区间的起始运行位置,通过所述调用函数调用所述目标函数;
调节单元,用于通过执行所述目标函数,从所述运行区间信息表中获取所述目标程序运行区间对应的所述目标硬件工作参数,并向所述操作系统发送所述硬件调节请求。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1000包括中央处理单元(Central Processing Unit,CPU)1001、包括随机存取存储器1002和只读存储器1003的系统存储器1004,以及连接系统存储器604和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1001执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1001执行该一个或多个程序实现上述各个方法实施例提供的方法。
根据本申请的各种实施例,所述计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由计算机设备所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述实施例提供的应用程序开发方法,或,应用程序运行方法。
本申请还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面或者上述方面的各种可选实现方式中提供的应用程序开发方法,或,应用程序运行方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的信息处理方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种应用程序开发方法,其特征在于,所述方法包括:
运行原始应用程序;
根据所述原始应用程序运行过程中的性能需求对所述原始应用程序进行划分,得到至少两个程序运行区间,其中,不同程序运行区间对应不同性能需求;
确定各个所述程序运行区间内硬件的硬件工作参数,其中,硬件在所述硬件工作参数下工作时满足所述程序运行区间内的性能需求;
根据所述程序运行区间和所述硬件工作参数更新所述原始应用程序,得到目标应用程序,所述目标应用程序用于在运行过程中基于所述程序运行区间和所述硬件工作参数调节硬件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述原始应用程序运行过程中的性能需求对所述原始应用程序进行划分,得到至少两个程序运行区间,包括:
获取所述原始应用程序运行过程中硬件的硬件性能参数;
根据所述硬件性能参数确定所述原始应用程序在不同运行阶段下的性能需求;
确定不同运行阶段对应的程序指令起始地址和程序指令结束地址;
根据所述程序指令起始地址和所述程序指令结束地址对所述原始应用程序进行划分,得到至少两个所述程序运行区间。
3.根据权利要求2所述的方法,其特征在于,所述硬件性能参数包括缓存未命中率,所述缓存未命中率包括指令缓存未命中率、数据缓存未命中率、L2缓存未命中率和L3缓存未命中率中的至少一种;
所述根据所述硬件性能参数确定所述原始应用程序在不同运行阶段下的性能需求,包括:
根据所述缓存未命中率与至少一级预设阈值之间的关系,确定所述原始应用程序在不同运行阶段下的性能需求。
4.根据权利要求3所述的方法,其特征在于,所述根据所述缓存未命中率与至少一级预设率阈值之间的关系,确定所述原始应用程序在不同运行阶段下的性能需求,包括:
响应于所述缓存未命中率低于第一级预设阈值,确定所述原始应用程序的性能需求为第一性能需求,所述第一性能需求对应第一程序运行区间;
响应于所述缓存未命中率高于所述第一级预设阈值且低于第二级预设阈值,确定所述原始应用程序的性能需求为第二性能需求,所述第二性能需求对应第二程序运行区间;
响应于所述缓存未命中率高于所述第二级预设阈值,确定所述原始应用程序的性能需求为第三性能需求,所述第三性能需求对应第三程序运行区间。
5.根据权利要求4所述的方法,其特征在于,所述确定各个所述程序运行区间内硬件的硬件工作参数,包括:
基于硬件性能功耗曲线,确定各个所述程序运行区间内处理器的处理器工作频率、处理器缓存的缓存工作频率和外部存储器的存储器工作频率中的至少一种;
其中,所述第一程序运行区间内的所述处理器工作频率高于所述第二程序运行区间内的所述处理器工作频率,所述第二程序运行区间内的所述处理器工作频率高于所述第三程序运行区间内的所述处理器工作频率;
所述第一程序运行区间内的所述缓存工作频率低于所述第二程序运行区间内的所述缓存工作频率,所述第二程序运行区间内的所述缓存工作频率低于所述第三程序运行区间内的所述缓存工作频率;
所述第一程序运行区间内的所述存储器工作频率低于所述第二程序运行区间内的所述存储器工作频率,所述第二程序运行区间内的所述存储器工作频率低于所述第三程序运行区间内的所述存储器工作频率。
6.根据权利要求1至5任一所述的方法,其特征在于,所述根据所述程序运行区间和所述硬件工作参数更新所述原始应用程序,得到目标应用程序,包括:
在所述原始应用程序中各个所述程序运行区间的起始运行位置插入调用函数,并在所述原始应用程序中插入运行区间信息表,得到所述目标应用程序,所述运行区间信息表中包含所述程序运行区间与所述硬件工作参数之间的对应关系,所述调用函数用于调用目标函数向操作系统发送硬件调节请求。
7.一种应用程序运行方法,其特征在于,所述方法包括:
运行目标应用程序,其中,所述目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求;
响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,所述硬件调节请求中包含所述目标程序运行区间对应的目标硬件工作参数,所述操作系统用于根据所述目标硬件工作参数调节硬件,其中,硬件在所述目标硬件工作参数下工作时满足所述目标程序运行区间内的性能需求;
通过调节后的硬件运行所述目标应用程序。
8.根据权利要求7所述的方法,其特征在于,所述目标应用程序中插入有调用函数以及运行区间信息表,所述运行区间信息表中包含程序运行区间与硬件工作参数之间的对应关系;
所述响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,包括:
响应于运行至所述目标程序运行区间的起始运行位置,通过所述调用函数调用所述目标函数;
通过执行所述目标函数,从所述运行区间信息表中获取所述目标程序运行区间对应的所述目标硬件工作参数,并向所述操作系统发送所述硬件调节请求。
9.一种应用程序开发装置,其特征在于,所述装置包括:
第一运行模块,用于运行原始应用程序;
划分模块,用于根据所述原始应用程序运行过程中的性能需求对所述原始应用程序进行划分,得到至少两个程序运行区间,其中,不同程序运行区间对应不同性能需求;
确定模块,用于确定各个所述程序运行区间内硬件的硬件工作参数,其中,硬件在所述硬件工作参数下工作时满足所述程序运行区间内的性能需求;
程序更新模块,用于根据所述程序运行区间和所述硬件工作参数更新所述原始应用程序,得到目标应用程序,所述目标应用程序用于在运行过程中基于所述程序运行区间和所述硬件工作参数调节硬件。
10.一种应用程序运行装置,其特征在于,所述装置包括:
第二运行模块,用于运行目标应用程序,其中,所述目标应用程序被划分为至少两个程序运行区间,且不同程序运行区间对应不同性能需求;
调节模块,用于响应于运行至所述目标应用程序中的目标程序运行区间,向操作系统发送硬件调节请求,所述硬件调节请求中包含所述目标程序运行区间对应的目标硬件工作参数,所述操作系统用于根据所述目标硬件工作参数调节硬件,其中,硬件在所述目标硬件工作参数下工作时满足所述目标程序运行区间内的性能需求;
第三运行模块,用于通过调节后的硬件运行所述目标应用程序。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述应用程序开发方法,或,权利要求7至8任一所述应用程序运行方法。
12.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至6任一所述应用程序开发方法,或,权利要求7至8任一所述应用程序运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011186837.1A CN112230964A (zh) | 2020-10-29 | 2020-10-29 | 应用程序开发、应用程序运行方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011186837.1A CN112230964A (zh) | 2020-10-29 | 2020-10-29 | 应用程序开发、应用程序运行方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112230964A true CN112230964A (zh) | 2021-01-15 |
Family
ID=74122374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011186837.1A Withdrawn CN112230964A (zh) | 2020-10-29 | 2020-10-29 | 应用程序开发、应用程序运行方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112230964A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627433A (zh) * | 2023-07-18 | 2023-08-22 | 鹏城实验室 | Ai处理器实时的参数预测方法、系统、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100162216A1 (en) * | 2008-12-23 | 2010-06-24 | International Business Machines Corporation | Workload performance projection via surrogate program analysis for future information handling systems |
CN102171650A (zh) * | 2008-11-24 | 2011-08-31 | 英特尔公司 | 用于将顺序程序分解为多个线程、执行所述线程和重构该顺序执行的系统、方法和装置 |
CN108536538A (zh) * | 2018-03-13 | 2018-09-14 | Oppo广东移动通信有限公司 | 处理器核心调度方法、装置、终端及存储介质 |
CN109189592A (zh) * | 2018-08-31 | 2019-01-11 | 重庆大学 | 基于混合式内存结构的共享缓存替换算法及装置 |
CN110955499A (zh) * | 2018-09-26 | 2020-04-03 | Oppo广东移动通信有限公司 | 处理器核心配置方法、装置、终端及存储介质 |
-
2020
- 2020-10-29 CN CN202011186837.1A patent/CN112230964A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171650A (zh) * | 2008-11-24 | 2011-08-31 | 英特尔公司 | 用于将顺序程序分解为多个线程、执行所述线程和重构该顺序执行的系统、方法和装置 |
US20100162216A1 (en) * | 2008-12-23 | 2010-06-24 | International Business Machines Corporation | Workload performance projection via surrogate program analysis for future information handling systems |
CN108536538A (zh) * | 2018-03-13 | 2018-09-14 | Oppo广东移动通信有限公司 | 处理器核心调度方法、装置、终端及存储介质 |
CN109189592A (zh) * | 2018-08-31 | 2019-01-11 | 重庆大学 | 基于混合式内存结构的共享缓存替换算法及装置 |
CN110955499A (zh) * | 2018-09-26 | 2020-04-03 | Oppo广东移动通信有限公司 | 处理器核心配置方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
赵家程;崔慧敏;冯晓兵;: "基于统计学习分析多核间性能干扰", 软件学报, no. 11 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627433A (zh) * | 2023-07-18 | 2023-08-22 | 鹏城实验室 | Ai处理器实时的参数预测方法、系统、设备及介质 |
CN116627433B (zh) * | 2023-07-18 | 2024-01-09 | 鹏城实验室 | Ai处理器实时的参数预测方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990138B (zh) | 资源调度方法、装置、服务器及存储介质 | |
CN101593133A (zh) | 虚拟机资源负载均衡方法及装置 | |
CN109597687B (zh) | 数据同步的资源分配方法、装置、存储介质和电子设备 | |
CN112256433B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
CN112667405A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN112230964A (zh) | 应用程序开发、应用程序运行方法、装置、设备及介质 | |
US11620049B2 (en) | Method, electronic device and computer program product for managing storage space | |
CN110888658A (zh) | 应用程序中功能模块的动态化方法、装置及存储介质 | |
CN111831639A (zh) | 一种全局唯一id生成方法及装置、车辆管理系统 | |
CN112416814A (zh) | 固态硬盘中垃圾回收的管理方法、存储介质和电子装置 | |
CN114090054A (zh) | 智能设备升级方法、装置、存储介质及电子设备 | |
CN114880079A (zh) | 基于强化学习的Kubernetes集群规模调整方法、系统及设备 | |
EP3936977A1 (en) | Application program management method and apparatus, and storage medium | |
KR100871185B1 (ko) | 전용 캐시 메모리 | |
CN112699148A (zh) | 刷新缓存的方法、装置、设备及存储介质 | |
CN112100553A (zh) | 一种网页页面配置方法、装置、电子设备及存储介质 | |
CN109271269A (zh) | 一种应用闪退的处理方法、装置及设备 | |
CN114063879B (zh) | 用于处理操作命令的方法、电子设备和存储介质 | |
CN113900734B (zh) | 一种应用程序文件配置方法、装置、设备及存储介质 | |
CN114816032B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US11431349B2 (en) | Method, electronic device and computer program product for processing data | |
CN110213314B (zh) | 确定存储节点的方法、装置、服务器 | |
CN116909940A (zh) | 一种自适应内存分配方法、装置及电子设备 | |
CN111047042A (zh) | 一种推理服务模型的运行方法及装置 | |
CN111158725A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210115 |
|
WW01 | Invention patent application withdrawn after publication |