CN108037968A - 执行进度的显示方法、装置、存储介质和电子设备 - Google Patents
执行进度的显示方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN108037968A CN108037968A CN201711250469.0A CN201711250469A CN108037968A CN 108037968 A CN108037968 A CN 108037968A CN 201711250469 A CN201711250469 A CN 201711250469A CN 108037968 A CN108037968 A CN 108037968A
- Authority
- CN
- China
- Prior art keywords
- time
- code
- goal task
- execution time
- penalty coefficient
- 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
Abstract
本公开涉及一种执行进度的显示方法、装置、存储介质和电子设备,涉及终端技术领域,该方法包括:根据目标任务的总代码量确定目标任务的总运行时间,根据预设的分配规则以及总运行时间为目标任务的每个单位代码分配执行时间,根据为每个单位代码分配的执行时间显示目标任务的执行进度。能够提高执行进度显示的准确度。
Description
技术领域
本公开涉及终端技术领域,具体地,涉及一种执行进度的显示方法、装置、存储介质和电子设备。
背景技术
随着信息技术的迅猛发展,人们日常学习、工作、娱乐等活动都离不开智能终端,用户在使用电子设备时,通常会遇到网页加载、文件下载、软件安装、数据传输等场景,这些场景执行完毕都需要一段时间,为了向用户提供当前任务的完成状态,使用户可以估计当前任务的完成时间,通常会在终端的显示界面上显示进度,比如进度条。特别是对于数据量较大的场景,比如大数据处理等场景,由于数据量大,处理时间长,因此为用户提供准确的进度就显得尤为重要。但是,目前的进度显示通常是基于文件数量进行显示的,但是由于每个文件的大小可能不一样,处理所需的时间是有差异的,因此目前基于文件数量的进度显示是不准确的。
发明内容
本公开的目的是提供一种执行进度的显示方法、装置、存储介质和电子设备,用以解决任务的执行进度显示不准确的问题。
为了实现上述目的,根据本公开实施例的第一方面,提供一种执行进度的显示方法,所述方法包括:
根据目标任务的总代码量确定所述目标任务的总运行时间;
根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
根据为所述每个单位代码分配的执行时间显示所述目标任务的执行进度。
可选的,所述方法还包括:
当所述目标任务的第一代码再次执行时,获取所述第一代码在上一次执行时花费的实际执行时间,所述第一代码为所述目标任务中的任一单位代码;
根据为所述第一代码在上一次执行时分配的第一执行时间,以及所述实际执行时间获取所述第一代码的惩罚系数;
根据所述惩罚系数以及预设阈值确定是否对所述第一执行时间进行调整;
当需要对所述第一执行时间进行调整时,根据调整后得到的所述第一代码的第二执行时间调整所述执行进度的显示。
可选的,
所述根据为所述第一代码在上一次执行时分配的第一执行时间,以及所述实际执行时间获取所述第一代码的惩罚系数,包括:
根据所述第一执行时间,以及所述实际执行时间获取所述第一代码的执行时间差值,所述执行时间差值包括:停滞时间或多余时间;
根据所述停滞时间或所述多余时间,以及所述第一执行时间获取所述惩罚系数,其中所述惩罚系数随所述停滞时间的增加呈指数型增长,所述惩罚系数随所述多余时间的增加呈线性增长。
可选的,所述根据所述停滞时间或所述多余时间,以及所述第一执行时间获取所述惩罚系数,包括:
根据所述停滞时间或所述多余时间,以及所述第一执行时间,利用预设的惩罚系数计算公式,获取所述惩罚系数;
其中,所述惩罚系数计算公式,包括:
其中,P表示所述惩罚系数,T表示所述第一执行时间,X表示所述停滞时间,Y表示所述多余时间,A为调整系数,且A为常数。
可选的,所述根据所述惩罚系数以及预设阈值确定是否对所述第一执行时间进行调整,包括:
判断所述惩罚系数是否大于所述预设阈值;
当所述惩罚系数小于或等于所述预设阈值时,确定所述第一执行时间不需要调整;
当所述惩罚系数大于所述预设阈值,所述执行时间差值为所述停滞时间时,将所述停滞时间与所述第一执行时间之和作为调整后的所述第二执行时间;
当所述惩罚系数大于所述预设阈值,所述执行时间差值为所述多余时间时,将所述第一执行时间减去所述多余时间的N分之一的差作为调整后的所述第二执行时间,其中N为大于1的正数。
可选的,所述根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间,包括:
获取所述每个单位代码的时间复杂度,所述每个单位代码的时间复杂度是在所述每个代码编写时预先记录的;
根据所述每个单位代码的时间复杂度确定所述每个单位代码的执行时间分配权重;
根据所述每个单位代码的执行时间分配权重,以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
其中,所述单位代码为所述目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
可选的,所述根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间,包括:
根据所述总运行时间以及所述目标任务的单位代码的总数量,获取平均执行时间,作为分配给所述每个单位代码执行时间;
其中,所述单位代码为所述目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
根据本公开实施例的第二方面,提供一种执行进度的显示装置,所述装置包括:
时间获取模块,用于根据目标任务的总代码量确定所述目标任务的总运行时间;
分配模块,用于根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
显示模块,用于根据为所述每个单位代码分配的执行时间显示所述目标任务的执行进度。
可选的,所述装置还包括:
所述时间获取模块,还用于当所述目标任务的第一代码再次执行时,获取所述第一代码在上一次执行时花费的实际执行时间,所述第一代码为所述目标任务中的任一单位代码;
系数获取模块,用于根据为所述第一代码在上一次执行时分配的第一执行时间,以及所述实际执行时间获取所述第一代码的惩罚系数;
判断模块,用于根据所述惩罚系数以及预设阈值确定是否对所述第一执行时间进行调整;
所述显示模块,还用于当需要对所述第一执行时间进行调整时,根据调整后得到的所述第一代码的第二执行时间调整所述执行进度的显示。
可选的,所述系数获取模块包括:
差值获取子模块,用于根据所述第一执行时间,以及所述实际执行时间获取所述第一代码的执行时间差值,所述执行时间差值包括:停滞时间或多余时间;
系数获取子模块,用于根据所述停滞时间或所述多余时间,以及所述第一执行时间获取所述惩罚系数,其中所述惩罚系数随所述停滞时间的增加呈指数型增长,所述惩罚系数随所述多余时间的增加呈线性增长。
可选的,所述系数获取子模块用于:
根据所述停滞时间或所述多余时间,以及所述第一执行时间,利用预设的惩罚系数计算公式,获取所述惩罚系数;
其中,所述惩罚系数计算公式,包括:
其中,P表示所述惩罚系数,T表示所述第一执行时间,X表示所述停滞时间,Y表示所述多余时间,A为调整系数,且A为常数。
可选的,所述判断模块包括:
判断子模块,用于判断所述惩罚系数是否大于所述预设阈值;
处理子模块,用于当所述惩罚系数小于或等于所述预设阈值时,确定所述第一执行时间不需要调整;
调整子模块,用于当所述惩罚系数大于所述预设阈值,所述执行时间差值为所述停滞时间时,将所述停滞时间与所述第一执行时间之和作为调整后的所述第二执行时间;
所述调整子模块,还用于当所述惩罚系数大于所述预设阈值,所述执行时间差值为所述多余时间时,将所述第一执行时间减去所述多余时间的N分之一的差作为调整后的所述第二执行时间,其中N为大于1的正数。
可选的,所述分配模块包括:
复杂度获取子模块,用于获取所述每个单位代码的时间复杂度,所述每个单位代码的时间复杂度是在所述每个代码编写时预先记录的;
权重获取子模块,用于根据所述每个单位代码的时间复杂度确定所述每个单位代码的执行时间分配权重;
分配子模块,用于根据所述每个单位代码的执行时间分配权重,以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
其中,所述单位代码为所述目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
可选的,所述分配模块用于:
根据所述总运行时间以及所述目标任务的单位代码的总数量,获取平均执行时间,作为分配给所述每个单位代码执行时间;
其中,所述单位代码为所述目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例的第一方面提供的执行进度的显示方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
本公开实施例的第三方面提供的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
通过上述技术方案,本公开首先根据目标任务的总代码量确定要完成目标任务需要的总运行时间,然后按照分配规则将总运行时间分配给目标任务的每个单位代码,得到每个单位代码的执行时间,再根据分配给每个单位代码的执行时间来控制执行进度的显示,相比现有的基于文件数量的执行进度显示方法,本公开能够避免由于处理不同文件所需时间存在差异造成的执行进度显示不准确的问题,因此能够提高执行进度显示的准确度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种执行进度的显示方法的流程图;
图2是根据一示例性实施例示出的另一种执行进度的显示方法的流程图;
图3是根据一示例性实施例示出的另一种执行进度的显示方法的流程图;
图4是根据一示例性实施例示出的又一种执行进度的显示方法的流程图;
图5是根据一示例性实施例示出的再一种执行进度的显示方法的流程图;
图6是根据一示例性实施例示出的一种执行进度的显示装置的框图;
图7是根据一示例性实施例示出的另一种执行进度的显示装置的框图;
图8是根据一示例性实施例示出的另一种执行进度的显示装置的框图;
图9是根据一示例性实施例示出的又一种执行进度的显示装置的框图;
图10是根据一示例性实施例示出的再一种执行进度的显示装置的框图;
图11是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的一种执行进度的显示方法、装置、存储介质和电子设备之前,首先对本公开各个实施例所涉及应用场景进行介绍。该应用场景包括在一电子设备的显示界面上显示任务的执行进度,本公开各实施例中不对执行进度的具体显示形式进行限定,执行进度例如可以是从起始位置向末端位置移动的滑块条的形式(即进度条),其中到达末端位置时表示任务或操作完成,也可以是百分比的形式,等等。所述电子设备例如可以是智能手机、平板电脑、智能电视、智能手表、PDA(英文:Personal Digital Assistant,中文:个人数字助理)、便携计算机等移动终端,也可以是台式计算机、具有显示界面的服务器等等。需要说明的是,在以下的实施例中,执行进度的具体显示形式以进度条为例进行说明。
图1是根据一示例性实施例示出的一种执行进度的显示方法的流程图,如图1所示,该方法包括:
步骤101,根据目标任务的总代码量确定目标任务的总运行时间。
举例来说,当用户在终端上执行预设的操作触发了目标任务时,可以根据目标任务对应的代码,获取总代码量,并根据总代码量确定要完成目标任务所需要的总运行时间。其中总代码量可以是指目标任务对应的代码的总量,比如可以是代码的总行数,或者是语句的总数量等等,示例性的,可以在代码编译过程中,通过多次执行代码获得的经验数据来确定总运行时间,例如,可以通过多次执行单位数量的代码的时间来推算上述总代码量需要的总运行时间,另外还可以通过记录该终端上一次(或之前多次)执行目标任务所用的时间为参考,来确定本次的总运行时间。
步骤102,根据预设的分配规则以及总运行时间为目标任务的每个单位代码分配执行时间。
示例的,将总运行时间按照预设的分配规则分配给目标任务的每个单位代码,分配给每个单位代码的时间,即为执行时间。其中,单位代码可以根据目标任务的代码内容进行划分,例如可以是一行代码,或者为一个语句,还可以根据目标任务的代码功能进行划分,例如可以是由一个或多个语句组成的一个功能模块。
步骤103,根据为每个单位代码分配的执行时间显示目标任务的执行进度。
举例来说,当目标任务的总运行时间确定后,其对应的执行进度从开始到完成所需要的总时间也就确定了,该执行进度的总时间也就是该目标任务的总运行时间。以进度条为例,由于进度条在显示界面上的显示长度是固定的,因此根据该进度条的总长度和总运行时间可以确定在单位时间所占该进度条的大小。例如,假设显示界面上的进度条的总长度为20cm,目标任务的总运行时间为30分钟,以该单位时间为1秒为例,可以确定每秒对应的进度条长度为0.011cm。因此,根据每个单位代码分配的执行时间,即可确定每个单位代码在该进度条中可以分配的长度。例如,为单位代码1分配的时间为10s,单位代码2分配的时间为20s,则可以确定单位代码1在进度条中的长度为10*0.011cm=0.11cm,可以确定单位代码2在进度条中的长度为20*0.011cm=0.22cm。然后,当目标任务开始执行,开始显示该进度条,假设在单位代码1之前进度条已经推进了5cm,则在进度条中从5cm-5.11cm这一段是属于单位代码1的显示范围,当执行到单位代码1时,可以在进度条中属于单位代码1的这一段按照每秒0.011cm的速度推进该进度条。其中,需要说明的是,上述进度条的总长度也可以采用像素值作为其距离的度量,比如进度条的总长度为500个像素点的大小。
在另一种实现方式中,如果是采用百分比的显示形式,则执行进度的总长度就可以看作是100%,结合总运行时间就可以确定在单位时间所占总进度的比例。例如,假设目标任务的总运行时间为2小时,以该单位时间为1秒为例,可以确定每秒对应的比例为0.0139%。因此,根据每个单位代码分配的执行时间,即可确定每个单位代码所占的比例。例如,继续以单位代码1分配的时间为10s,单位代码2分配的时间为20s为例,则可以确定单位代码1所占的比例为10*0.0139=0.139%,可以确定单位代码2所占的比例为20*0.0139cm=0.278%。然后,当目标任务开始执行时,开始显示当前进度的百分比,假设在单位代码1之前已经执行了30%,则从30%~30.139%这段比例范围时属于单位代码1的,当执行到单位代码1时,可以在属于单位代码1这段比例范围中按照每秒0.0139%的速度进行百分比的增长,对于单位代码2同理。
通过上述方法,当开始执行该目标任务时,即可根据每个单位代码在进度条中分配的长度进行显示,或者根据单位代码在进度中所占的比例进行显示。通过上述方法,无论是采用进度条或是进度比例的方式,都能够保证当前显示的进度能够准确反映出当前任务的代码已经执行的比例,因此可以反映出真实的、准确的执行进度。
综上所述,本公开首先根据目标任务的总代码量确定要完成目标任务需要的总运行时间,然后按照分配规则将总运行时间分配给目标任务的每个单位代码,得到每个单位代码的执行时间,再根据分配给每个单位代码的执行时间来控制执行进度的显示,相比现有的基于文件数量的执行进度显示方法,本公开能够避免由于处理不同文件所需时间存在差异造成的执行进度不准确的问题,因此能够提高执行进度显示的准确度。
图2是根据一示例性实施例示出的另一种执行进度的显示方法的流程图,如图2所示,该方法还包括:
步骤104,当目标任务的第一代码再次执行时,获取第一代码在上一次执行时花费的实际执行时间,第一代码为目标任务中的任一单位代码。
步骤105,根据为第一代码在上一次执行时分配的第一执行时间,以及实际执行时间获取第一代码的惩罚系数。
示例的,在目标任务的执行过程中,可以对每个单位代码的实际执行时间进行记录,因为对于目标任务中的任一代码,在目标任务的执行过程中可能执行不只一次(比如相同代码针对不同数据执行),因此当一个单位代码再次执行时,可以根据该单位代码上次执行时记录的实际执行时间对其分配的执行时间进行调整,另外如果一个单位代码在该目标任务中只执行过一次,则可以根据该目标任务上次执行时记录的实际执行时间对其分配的执行时间进行调整。以第一代码为例,该第一代码可以是目标任务中的任一单位代码,假设在上一次执行第一代码时,对应分配给第一代码的执行时间为第一执行时间,而执行过程中实际执行时间与第一执行时间可能不同,则将第一执行时间和实际执行时间作为一条记录,对应第一代码,将该条记录按照预设的格式存储在终端中,在第一代码再一次执行时,根据该条记录,可以获取第一代码在上一次执行时的第一执行时间和实际执行时间,从而可以进行步骤106-107对对第一代码所分配的执行时间进行调整,。
步骤106,根据惩罚系数以及预设阈值确定是否对第一执行时间进行调整。
步骤107,当需要对第一执行时间进行调整时,根据调整后得到的第一代码的第二执行时间调整执行进度的显示。
举例来说,进度条的显示不准确,通常有两种形式体现:进度条显示过快,或者进度条停滞不动,具体到时间分配,可以分为单位代码分配的执行时间过多,大于对应的单位代码执行完毕所用的实际时间,或者单位代码分配的执行时间过少,小于对应的单位代码执行完毕所用的实际时间。以第一代码为例,为其分配的执行时间为20s,若第一代码的实际执行时间为58s,那么在执行到该第一代码时进度条在20s内的显示进度是正常的,20s之后的38s进度条会停滞不动,直至第一代码执行完毕后进度条才会继续推进,这段停滞时间对于用户来说无法判断是代码没有执行完,还是死机了。若第一代码的实际执行时间为12s,进度条在这12s内的推进速度是正常的,在12s后该第一代码已经执行完,剩下的进度条中与第一代码对应的部分就会在一瞬间内完成,导致进度条显示过快。因此,可以通过获取上述的惩罚系数来对第一代码的执行时间进行调整,以便控制进度条按照调整后的执行时间来显示第一代码对应的进度,从而可以对单位代码的分配的执行时间进行更精准、更合理的分配,以进一步提高进度条显示的准确度。下面对惩罚系数的具体获取方法进行说明。
图3是根据一示例性实施例示出的另一种执行进度的显示方法的流程图,如图3所示,步骤105包括:
步骤1051,根据第一执行时间,以及实际执行时间获取第一代码的执行时间差值,执行时间差值包括:停滞时间或多余时间。
举例来说,执行时间差值可以是该第一代码的第一执行时间与实际执行时间相减的绝对值,当第一执行时间大于实际执行时间时,执行时间差值为多余时间,当第一执行时间小于实际执行时间时,执行时间差值为停滞时间。当第一执行时间等于实际执行时间,那么此时进度条显示准确,不需要调整。
步骤1052,根据停滞时间或多余时间,以及第一执行时间获取惩罚系数,其中惩罚系数随停滞时间的增加呈指数型增长,惩罚系数随多余时间的增加呈线性增长。
由于多余时间对进度条显示准确度,特别是用户体验的影响较低,而停滞时间的影响较高,因此对停滞时间和多余时间的容忍程度不同,因此可以设置惩罚系数随停滞时间的增加呈指数型增长,惩罚系数随多余时间的增加呈线性增长。
示例的,根据停滞时间或多余时间,以及该第一执行时间,利用预设的惩罚系数计算公式,获取惩罚系数;
其中惩罚系数计算公式,可以包括:
其中,P表示惩罚系数的值,T表示该第一执行时间,即上次第一代码执行时分配的执行时间,X表示停滞时间,Y表示多余时间,A为调整系数,且A为常数。
对于用户来说,进度条显示过快和进度条停滞两种情况中,进度条停滞的问题更严重,导致用户无法预估完成目标任务所需的时间,因此,通过上述公式可以看出,如果第一代码的停滞时间越长,呈指数增长,会使P的值迅速增大,第一代码的多余时间越长,呈线性增长,P的值增长速度相对较低,可见可以对停滞时间的控制的更严格。
图4是根据一示例性实施例示出的又一种执行进度的显示方法的流程图,如图4所示,步骤106包括:
步骤1061,判断惩罚系数是否大于预设阈值,是的话执行步骤1063或步骤1064,否的话执行步骤1062。
步骤1062,确定第一执行时间不需要调整。
步骤1063,当执行时间差值为停滞时间时,将停滞时间与第一执行时间之和作为调整后的第二执行时间。
步骤1064,当执行时间差值为多余时间时,将第一执行时间减去多余时间的N分之一的差作为调整后的第二执行时间,其中N为大于1的正数。
举例来说,预设阈值可以是在目标任务的代码编译过程中,通过多次执行代码获得的经验数据来确定的,也可以根据具体需求,由研发人员或用户来设置。当惩罚系数小于或者等于预设阈值时,表示为第一代码分配的第一执行时间合理,对第一执行时间不做调整。当惩罚系数大于预设阈值时,进一步判定执行时间差值是停滞时间和多余时间中的哪一类。当执行时间差值为停滞时间时,在第一执行时间的基础上,加上停滞时间,作为调整后的第二执行时间。当执行时间差值为多余时间时,在第一执行时间的基础上,减去多余时间的N分之一,作为调整后的第二执行时间,其中N为大于1的正数。以该第一执行时间为20s,N为2举例(即将多余时间减半),若第一代码的实际执行时间为58s,停滞时间为38s,将第二执行时间调整为20s+38s=58s。若第一代码的实际执行时间为12s,那么多余时间为8s,将第二执行时间调整为20s-8s*1/2=16s。
图5是根据一示例性实施例示出的再一种执行进度的显示方法的流程图,如图5所示,步骤102包括:
步骤1021,获取每个单位代码的时间复杂度,每个单位代码的时间复杂度是在每个代码编写时预先记录的。
步骤1022,根据每个单位代码的时间复杂度确定每个单位代码的执行时间分配权重。
步骤1023,根据每个单位代码的执行时间分配权重,以及总运行时间为目标任务的每个单位代码分配执行时间。
示例的,在代码编写过程中,记录每个单位代码的时间复杂度,时间复杂度能够反映执行一段代码所需要的计算工作量,能够定性地描述该段代码的运行时间,可以理解为该段代码中循环执行次数所反映的数量级,因此通常根据该段代码中循环执行次数(例如for循环的次数)就可以确定时间复杂度。因此,可以根据时间复杂度来确定每个单位代码的执行时间分配权重,进一步的,根据每个单位代码的执行时间分配权重和总运行时间,为目标任务的每个单位代码分配执行时间。示例的,该目标任务可以是一个程序,该程序中可以包括多个功能模块(也可以称为步骤),以单位代码为功能模块为例,假设目标任务的对应的代码可以分为5个功能模块,分别为A模块、B模块、C模块、D模块和E模块,分别对应的时间复杂度为a、b、c、d和e,那么可以确定B模块的执行时间分配权重为:b/(a+b+c+d+e),再根据总运行时间T来确定为B模块分配的执行时间为T*b/(a+b+c+d+e)。可选的,还可以根据模块下的语句进行更详细的权重分配,例如,假设目标任务包括A模块、B模块,其中A模块包括语句A1,A2,A3,A4,其语句的时间复杂度分别为a,b,c,d,B模块包括语句B1,B2,B3,其语句的时间复杂度分别为e,f,g,则:A1的执行时间分配权重为a/(a+b+c+d+e+f+g),为A1分配的执行时间为T*a/(a+b+c+d+e+f+g)。
可选的,步骤102包括:
根据总运行时间以及目标任务的单位代码的总数量,获取平均执行时间,作为分配给每个单位代码执行时间。
示例的,还可以按照目标任务的单位代码的总数量将总运行时间进行平均分配,以单位代码为功能模块为例,目标任务的对应的代码可以分为6个功能模块,根据总运行时间T可以确定6个功能模块的分配时间均为T/6。可选的,也可以以一行代码为单位代码来进行平均分配,假设该目标任务有1000行代码,则可以将T平均分配给每一行代码,则每行代码的执行时间就是T/1000。
综上所述,本公开首先根据目标任务的总代码量确定要完成目标任务需要的总运行时间,然后按照分配规则将总运行时间分配给目标任务的每个单位代码,得到每个单位代码的执行时间,再根据分配给每个单位代码的执行时间来控制执行进度的显示,相比现有的基于文件数量的执行进度显示方法,本公开能够避免由于处理不同文件所需时间存在差异造成的执行进度不准确的问题,因此能够提高执行进度显示的准确度。
图6是根据一示例性实施例示出的一种执行进度的显示装置的框图,如图6所示,该装置200包括:
时间获取模块201,用于根据目标任务的总代码量确定目标任务的总运行时间。
分配模块202,用于根据预设的分配规则以及总运行时间为目标任务的每个单位代码分配执行时间。
显示模块203,用于根据为每个单位代码分配的执行时间显示目标任务的执行进度。
图7是根据一示例性实施例示出的另一种执行进度的显示装置的框图,如图7所示,该装置200还包括:
时间获取模块201,还用于当目标任务的第一代码再次执行时,获取第一代码在上一次执行时花费的实际执行时间,第一代码为目标任务中的任一单位代码。
系数获取模块204,用于根据为第一代码在上一次执行时分配的第一执行时间,以及实际执行时间获取第一代码的惩罚系数。
判断模块205,用于根据惩罚系数以及预设阈值确定是否对第一执行时间进行调整。
显示模块203,还用于当需要对第一执行时间进行调整时,根据调整后得到的第一代码的第二执行时间调整执行进度的显示。
图8是根据一示例性实施例示出的另一种执行进度的显示装置的框图,如图8所示,系数获取模块204包括:
差值获取子模块2041,用于根据第一执行时间,以及实际执行时间获取第一代码的执行时间差值,执行时间差值包括:停滞时间或多余时间。
系数获取子模块2042,用于根据停滞时间或多余时间,以及第一执行时间获取惩罚系数,其中惩罚系数随停滞时间的增加呈指数型增长,惩罚系数随多余时间的增加呈线性增长。
可选的,系数获取子模块2042用于:
根据停滞时间或多余时间,以及第一执行时间,利用预设的惩罚系数计算公式,获取惩罚系数。
其中,惩罚系数计算公式,包括:
其中,P表示惩罚系数,T表示第一执行时间,X表示停滞时间,Y表示多余时间,A为调整系数,且A为常数。
图9是根据一示例性实施例示出的又一种执行进度的显示装置的框图,如图9所示,判断模块205包括:
判断子模块2051,用于判断惩罚系数是否大于预设阈值。
处理子模块2052,用于当惩罚系数小于或等于预设阈值时,确定第一执行时间不需要调整。
调整子模块2053,用于当惩罚系数大于预设阈值,执行时间差值为停滞时间时,将停滞时间与第一执行时间之和作为调整后的第二执行时间。
调整子模块2053,还用于当惩罚系数大于预设阈值,执行时间差值为多余时间时,将第一执行时间减去多余时间的N分之一的差作为调整后的第二执行时间,其中N为大于1的正数。
图10是根据一示例性实施例示出的再一种执行进度的显示装置的框图,如图10所示,分配模块202包括:
复杂度获取子模块2021,用于获取每个单位代码的时间复杂度,每个单位代码的时间复杂度是在每个代码编写时预先记录的。
权重获取子模块2022,用于根据每个单位代码的时间复杂度确定每个单位代码的执行时间分配权重。
分配子模块2023,用于根据每个单位代码的执行时间分配权重,以及总运行时间为目标任务的每个单位代码分配执行时间。
其中,单位代码为目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
可选的,分配模块202用于:
根据总运行时间以及目标任务的单位代码的总数量,获取平均执行时间,作为分配给每个单位代码执行时间。
其中,单位代码为目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开首先根据目标任务的总代码量确定要完成目标任务需要的总运行时间,然后按照分配规则将总运行时间分配给目标任务的每个单位代码,得到每个单位代码的执行时间,再根据分配给每个单位代码的执行时间来控制执行进度的显示,相比现有的基于文件数量的执行进度显示方法,本公开能够避免由于处理不同文件所需时间存在差异造成的执行进度不准确的问题,因此能够提高执行进度显示的准确度。
图11是根据一示例性实施例示出的一种电子设备700的框图。如图11所示,该电子设备700可以包括:处理器701,存储器702,多媒体组件703,输入/输出(I/O)接口704,以及通信组件705。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的执行进度的显示方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的执行进度的显示方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的执行进度的显示方法。
综上所述,本公开首先根据目标任务的总代码量确定要完成目标任务需要的总运行时间,然后按照分配规则将总运行时间分配给目标任务的每个单位代码,得到每个单位代码的执行时间,再根据分配给每个单位代码的执行时间来控制执行进度的显示,相比现有的基于文件数量的执行进度显示方法,本公开能够避免由于处理不同文件所需时间存在差异造成的执行进度不准确的问题,因此能够提高执行进度显示的准确度。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种执行进度的显示方法,其特征在于,所述方法包括:
根据目标任务的总代码量确定所述目标任务的总运行时间;
根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
根据为所述每个单位代码分配的执行时间显示所述目标任务的执行进度。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标任务的第一代码再次执行时,获取所述第一代码在上一次执行时花费的实际执行时间,所述第一代码为所述目标任务中的任一单位代码;
根据为所述第一代码在上一次执行时分配的第一执行时间,以及所述实际执行时间获取所述第一代码的惩罚系数;
根据所述惩罚系数以及预设阈值确定是否对所述第一执行时间进行调整;
当需要对所述第一执行时间进行调整时,根据调整后得到的所述第一代码的第二执行时间调整所述执行进度的显示。
3.根据权利要求2所述的方法,其特征在于,所述根据为所述第一代码在上一次执行时分配的第一执行时间,以及所述实际执行时间获取所述第一代码的惩罚系数,包括:
根据所述第一执行时间,以及所述实际执行时间获取所述第一代码的执行时间差值,所述执行时间差值包括:停滞时间或多余时间;
根据所述停滞时间或所述多余时间,以及所述第一执行时间获取所述惩罚系数,其中所述惩罚系数随所述停滞时间的增加呈指数型增长,所述惩罚系数随所述多余时间的增加呈线性增长。
4.根据权利要求3所述的方法,其特征在于,所述根据所述停滞时间或所述多余时间,以及所述第一执行时间获取所述惩罚系数,包括:
根据所述停滞时间或所述多余时间,以及所述第一执行时间,利用预设的惩罚系数计算公式,获取所述惩罚系数;
其中,所述惩罚系数计算公式,包括:
<mrow>
<mi>P</mi>
<mo>=</mo>
<mfrac>
<mi>X</mi>
<mi>T</mi>
</mfrac>
<mo>*</mo>
<msup>
<mi>e</mi>
<mfrac>
<mi>X</mi>
<mi>T</mi>
</mfrac>
</msup>
<mo>+</mo>
<mi>A</mi>
<mo>*</mo>
<mfrac>
<mi>Y</mi>
<mi>T</mi>
</mfrac>
</mrow>
其中,P表示所述惩罚系数,T表示所述第一执行时间,X表示所述停滞时间,Y表示所述多余时间,A为调整系数,且A为常数。
5.根据权利要求3所述的方法,其特征在于,所述根据所述惩罚系数以及预设阈值确定是否对所述第一执行时间进行调整,包括:
判断所述惩罚系数是否大于所述预设阈值;
当所述惩罚系数小于或等于所述预设阈值时,确定所述第一执行时间不需要调整;
当所述惩罚系数大于所述预设阈值,所述执行时间差值为所述停滞时间时,将所述停滞时间与所述第一执行时间之和作为调整后的所述第二执行时间;
当所述惩罚系数大于所述预设阈值,所述执行时间差值为所述多余时间时,将所述第一执行时间减去所述多余时间的N分之一的差作为调整后的所述第二执行时间,其中N为大于1的正数。
6.根据权利要求1所述的方法,其特征在于,所述根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间,包括:
获取所述每个单位代码的时间复杂度,所述每个单位代码的时间复杂度是在所述每个代码编写时预先记录的;
根据所述每个单位代码的时间复杂度确定所述每个单位代码的执行时间分配权重;
根据所述每个单位代码的执行时间分配权重,以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
其中,所述单位代码为所述目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
7.根据权利要求1所述的方法,其特征在于,所述根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间,包括:
根据所述总运行时间以及所述目标任务的单位代码的总数量,获取平均执行时间,作为分配给所述每个单位代码执行时间;
其中,所述单位代码为所述目标任务的一行代码,或者为一个语句,或者为由一个或多个语句组成的一个功能模块。
8.一种执行进度的显示装置,其特征在于,所述装置包括:
时间获取模块,用于根据目标任务的总代码量确定所述目标任务的总运行时间;
分配模块,用于根据预设的分配规则以及所述总运行时间为所述目标任务的每个单位代码分配执行时间;
显示模块,用于根据为所述每个单位代码分配的执行时间显示所述目标任务的执行进度。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
权利要求9中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711250469.0A CN108037968B (zh) | 2017-12-01 | 2017-12-01 | 执行进度的显示方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711250469.0A CN108037968B (zh) | 2017-12-01 | 2017-12-01 | 执行进度的显示方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108037968A true CN108037968A (zh) | 2018-05-15 |
CN108037968B CN108037968B (zh) | 2021-11-05 |
Family
ID=62094630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711250469.0A Active CN108037968B (zh) | 2017-12-01 | 2017-12-01 | 执行进度的显示方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108037968B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804216A (zh) * | 2018-06-13 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种多任务进度管理系统与方法 |
CN109828826A (zh) * | 2019-01-10 | 2019-05-31 | 新华三云计算技术有限公司 | 一种任务进度的轮询方法、装置及系统 |
CN112685367A (zh) * | 2020-12-30 | 2021-04-20 | 上海掌门科技有限公司 | 文件分享进度的指示方法、电子设备及计算机可读存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110015A (zh) * | 2009-12-29 | 2011-06-29 | 北大方正集团有限公司 | 一种任务进度和任务处理时间的确定方法及装置 |
CN102207863A (zh) * | 2011-04-01 | 2011-10-05 | 奇智软件(北京)有限公司 | 一种进度条前进的控制方法及装置 |
CN103593210A (zh) * | 2013-10-09 | 2014-02-19 | 北京奇虎科技有限公司 | 进度显示方法及设备 |
CN103914303A (zh) * | 2014-04-10 | 2014-07-09 | 福建伊时代信息科技股份有限公司 | 一种进度条呈现方法及其装置 |
CN104123214A (zh) * | 2013-04-26 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 基于运行时数据的任务执行进度度量和展示的方法及系统 |
US20140344746A1 (en) * | 2012-04-02 | 2014-11-20 | Apple Inc. | Smart Progress Indicator |
CN104375862A (zh) * | 2014-11-11 | 2015-02-25 | 北京搜狗科技发展有限公司 | 一种进度条展现方法及装置 |
CN104731663A (zh) * | 2015-03-31 | 2015-06-24 | 北京奇艺世纪科技有限公司 | 任务处理方法及系统 |
CN104778167A (zh) * | 2014-01-09 | 2015-07-15 | 中兴通讯股份有限公司 | 一种网页加载进度控制方法、装置和终端 |
CN105183322A (zh) * | 2015-09-18 | 2015-12-23 | 百度在线网络技术(北京)有限公司 | 进度条显示方法和装置 |
US20160093229A1 (en) * | 2014-09-30 | 2016-03-31 | Fujitsu Limited | Display control method, display control apparatus, and computer-readable recording medium |
CN105898593A (zh) * | 2016-03-31 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种播放进度调节方法和装置 |
CN105988913A (zh) * | 2015-02-27 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种进度指示方法和进度指示装置 |
CN106197426A (zh) * | 2016-06-28 | 2016-12-07 | 桂林电子科技大学 | 一种无人机应急通信路径规划方法及系统 |
CN107180085A (zh) * | 2017-05-09 | 2017-09-19 | 北京龙杯信息技术有限公司 | 用于任务进度管控的方法、存储设备和终端 |
-
2017
- 2017-12-01 CN CN201711250469.0A patent/CN108037968B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110015A (zh) * | 2009-12-29 | 2011-06-29 | 北大方正集团有限公司 | 一种任务进度和任务处理时间的确定方法及装置 |
CN102207863A (zh) * | 2011-04-01 | 2011-10-05 | 奇智软件(北京)有限公司 | 一种进度条前进的控制方法及装置 |
US20140344746A1 (en) * | 2012-04-02 | 2014-11-20 | Apple Inc. | Smart Progress Indicator |
CN104123214A (zh) * | 2013-04-26 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 基于运行时数据的任务执行进度度量和展示的方法及系统 |
CN103593210A (zh) * | 2013-10-09 | 2014-02-19 | 北京奇虎科技有限公司 | 进度显示方法及设备 |
CN104778167A (zh) * | 2014-01-09 | 2015-07-15 | 中兴通讯股份有限公司 | 一种网页加载进度控制方法、装置和终端 |
CN103914303A (zh) * | 2014-04-10 | 2014-07-09 | 福建伊时代信息科技股份有限公司 | 一种进度条呈现方法及其装置 |
US20160093229A1 (en) * | 2014-09-30 | 2016-03-31 | Fujitsu Limited | Display control method, display control apparatus, and computer-readable recording medium |
CN104375862A (zh) * | 2014-11-11 | 2015-02-25 | 北京搜狗科技发展有限公司 | 一种进度条展现方法及装置 |
CN105988913A (zh) * | 2015-02-27 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种进度指示方法和进度指示装置 |
CN104731663A (zh) * | 2015-03-31 | 2015-06-24 | 北京奇艺世纪科技有限公司 | 任务处理方法及系统 |
CN105183322A (zh) * | 2015-09-18 | 2015-12-23 | 百度在线网络技术(北京)有限公司 | 进度条显示方法和装置 |
CN105898593A (zh) * | 2016-03-31 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种播放进度调节方法和装置 |
CN106197426A (zh) * | 2016-06-28 | 2016-12-07 | 桂林电子科技大学 | 一种无人机应急通信路径规划方法及系统 |
CN107180085A (zh) * | 2017-05-09 | 2017-09-19 | 北京龙杯信息技术有限公司 | 用于任务进度管控的方法、存储设备和终端 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804216A (zh) * | 2018-06-13 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种多任务进度管理系统与方法 |
CN109828826A (zh) * | 2019-01-10 | 2019-05-31 | 新华三云计算技术有限公司 | 一种任务进度的轮询方法、装置及系统 |
CN112685367A (zh) * | 2020-12-30 | 2021-04-20 | 上海掌门科技有限公司 | 文件分享进度的指示方法、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108037968B (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108037968A (zh) | 执行进度的显示方法、装置、存储介质和电子设备 | |
Gorbahn et al. | Charm-Quark Contribution to K L→ μ+ μ− at Next-to-Next-to-Leading Order | |
CN109582872A (zh) | 一种信息推送方法、装置、电子设备及存储介质 | |
CN109445884B (zh) | 一种功能标签展示方法及终端设备 | |
CN108985489B (zh) | 一种风险预测方法、风险预测装置和终端设备 | |
CN108388515A (zh) | 测试数据生成方法、装置、设备以及计算机可读存储介质 | |
CN109344044B (zh) | 计算页面首屏渲染时间的方法和系统 | |
CN106127382B (zh) | 资源管理方法及装置 | |
CN105243098A (zh) | 人脸图像的聚类方法及装置 | |
CN108596387A (zh) | 一种资金的预测方法、装置及电子设备 | |
CN108182448B (zh) | 一种标注策略的选择方法及相关装置 | |
CN108509348B (zh) | 一种系统老化的测试方法及移动终端 | |
CN109710665A (zh) | 报表下载方法、装置、设备及可读存储介质 | |
CN106507140A (zh) | 一种视频加载方法、装置及电子设备 | |
KR100865797B1 (ko) | E-book 페이지 자동넘김 방법, 및 그 시스템 | |
CN102103196A (zh) | 具有可调数字预加重的磁共振梯度波形产生系统及方法 | |
CN110008446A (zh) | 一种基于编程语言对表格文件进行转化的方法和电子设备 | |
CN109511017A (zh) | 一种视频回放方法及系统 | |
CN110166498A (zh) | 用户类别确定方法及装置、计算机设备及存储介质 | |
CN110275661A (zh) | 数据展示方法及装置 | |
CN109948050A (zh) | 信息处理方法和装置,存储介质和电子设备 | |
CN110807313A (zh) | 预估文本阅读时间的方法、装置、电子设备及存储介质 | |
CN105022842A (zh) | 一种笔记推送方法及系统 | |
CN115049433A (zh) | 一种模型训练方法、装置、存储介质及电子设备 | |
CN107229523A (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 |