一种启动项耗时的测算方法和装置转让专利

申请号 : CN201310096444.5

文献号 : CN103150248B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 符气康聂科峰魏雪

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例公开了一种启动项耗时的测算方法和装置,其中方法包括:获取监控时间段内各进程之间的父子关系,并确定第一进程和第二进程;所述第一进程为待计算的启动项对应的进程,所述第二进程为依据所述各进程项之间的父子关系确定的所述第一进程的子进程;计算进程耗时,所述计算进程耗时包括:计算所述第一进程的耗时以及第二进程的耗时;将所述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。采用如上方案,分析进程对系统启动时间的影响,不再终止于其自身加载结束,而是综合考虑进程在整个监控时间段内进程自身以及其子进程,因而能够更加准确的确定启动项在开机阶段的耗时。

权利要求 :

1.一种启动项耗时的测算方法,其特征在于,包括:

获取监控时间段内各进程之间的父子关系,并确定第一进程和第二进程;所述第一进程为待计算的启动项对应的进程,所述第二进程为依据所述各进程项之间的父子关系确定的所述第一进程的子进程;所述第二进程由所述第一进程创建;

计算进程耗时,所述计算进程耗时包括:计算所述第一进程的耗时以及第二进程的耗时;

将所述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。

2.根据权利要求1所述方法,其特征在于,所述计算进程耗时包括:计算进程的中央处理器耗时以及进程的输入/输出耗时,将进程的中央处理器耗时与进程的输入/输出耗时的和作为进程耗时。

3.根据权利要求2所述方法,其特征在于,所述监控时间段为开机时间的时间段,所述计算进程的输入/输出耗时包括:计算系统开机时间与所有进程的中央处理器时间总和以及系统空闲时间的差,计算设定的输入/输出时间占系统开机时间的比例与进程的输入/输出吞吐量的积再与所有进程的输入/输出吞吐量的商,计算所述差与所述商的积作为所述进程的输入/输出耗时。

4.根据权利要求3所述方法,其特征在于,

用于计算的所述系统开机时间以及系统空闲时间不包含进程等待过程中的中央处理器耗时,所有进程的输入/输出吞吐量不包含等待过程中的输入/输出耗时。

5.根据权利要求4所述方法,其特征在于,所述设定的输入/输出时间占总时间的比例的值域为(0,1.0)。

6.根据权利要求1至5任意一项所述方法,其特征在于,所述监控时间段内各进程之间的父子关系、进程的中央处理器耗时、进程的输入/输出吞吐量中的至少一项的获取方式包括:采用定时中断的方式获取当前的所有进程,并保存本次中断与前次中断相比的新的进程的句柄信息;读取与所述句柄信息对应的应用程序编程接口得到。

7.一种启动项耗时的测算装置,其特征在于,包括:

关系获取单元,用于获取监控时间段内各进程之间的父子关系;

进程确定单元,用于确定第一进程和第二进程;所述第一进程为待计算的启动项对应的进程,所述第二进程为依据所述关系获取单元获取的各进程项之间的父子关系确定的所述第一进程的子进程;所述第二进程由所述第一进程创建;

耗时计算单元,用于计算进程耗时,所述计算进程耗时包括:计算所述第一进程的耗时以及第二进程的耗时;将所述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。

8.根据权利要求7所述装置,其特征在于,

所述耗时计算单元,具体用于计算进程的中央处理器耗时以及进程的输入/输出耗时,将进程的中央处理器耗时与进程的输入/输出耗时的和作为进程耗时。

9.根据权利要求8所述装置,其特征在于,所述监控时间段为开机时间的时间段;所述耗时计算单元,具体用于计算系统开机时间与所有进程的中央处理器时间总和以及系统空闲时间的差,计算设定的输入/输出时间占系统开机时间的比例与进程的输入/输出吞吐量的积再与所有进程的输入/输出吞吐量的商,计算所述差与所述商的积作为所述进程的输入/输出耗时。

10.根据权利要求9所述装置,其特征在于,

所述耗时计算单元,具体用于计算的系统开机时间以及系统空闲时间不包含进程等待过程中的中央处理器耗时,所有进程的输入/输出吞吐量不包含等待过程中的输入/输出耗时

11.根据权利要求10所述装置,其特征在于,

所述耗时计算单元,具体用于计算使用的所述设定的输入/输出时间占总时间的比例的值域为(0,1.0)。

12.根据权利要求7至11任意一项所述装置,其特征在于,还包括:信息获取单元,用于获取所述监控时间段内各进程之间的父子关系、进程的中央处理器耗时、进程的输入/输出吞吐量中的至少一项,且获取方式为:采用定时中断的方式获取当前的所有进程,并保存本次中断与前次中断相比的新的进程的句柄信息;读取与所述句柄信息对应的应用程序编程接口得到。

说明书 :

一种启动项耗时的测算方法和装置

技术领域

[0001] 本发明涉及电子通信技术领域,特别涉及一种启动项耗时的测算方法和装置。

背景技术

[0002] 启动项是指设备(例如计算机)在开机后非用户操作触发而运行的加载项,包括但不限于以下几类:服务项、开机运行的计划任务、用户开机启动文件夹中的文件、注册表中注册了要在开机时运行的键等。本文所称的的启动项均对应有一个进程。启动项耗时,也即是该启动项对应的进程耗时。
[0003] 开机完成是指设备上电以后,操作系统的所有开机加载项都已加载,系统CPU(Central Processing Unit,中央处理器)、内存等资源的使用率较稳定,用户可以顺畅操作计算机,此时视计算机已经开机完成。
[0004] 用户的系统在开机时会加载很多启动项,而这些启动项会拖慢系统,增加用户的开机时间。用户仅凭感官,很难确定是哪个启动项让系统的的开机和运行变慢。若能获得各启动项对应的进程在开机阶段的耗时,这样就可以确定让系统开机变慢的启动项,并有选择地将其禁用或删除,实现提高开机速度的效果。
[0005] 目前一些优化软件在开机阶段已经存在对进程的监控、并提供了计算进程启动耗时的功能。目前监控进程的方法,要求监控装置先于启动项运行,通过监控启动项对应的进程的运行、加载完成来判断进程在开机时间段的耗时;对于有界面的进程,通常通过捕获进程界面弹出的时间来判断进程加载结束。这些方法的共同特点就是,通过判定一个进程在开机阶段的加载完成前占用的CPU时间,来作为这个进程的开机耗时。
[0006] 发明人在实现本发明实施例的过程中发现,通过测试结果表明,系统运行的时间减去系统空闲时间后的值远远大于系统上曾经运行过的所有进程的CPU时间总和,因而采用以上方案,以CPU时间作为一个进程的启动耗时进行测算不准确。

发明内容

[0007] 本发明实施例提供了一种启动项耗时的测算方法和装置,用于准确的确定启动项在开机阶段的耗时。
[0008] 一种启动项耗时的测算方法,包括:
[0009] 获取监控时间段内各进程之间的父子关系,并确定第一进程和第二进程;所述第一进程为待计算的启动项对应的进程,所述第二进程为依据所述各进程项之间的父子关系确定的所述第一进程的子进程;
[0010] 计算进程耗时,所述计算进程耗时包括:计算所述第一进程的耗时以及第二进程的耗时;
[0011] 将所述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。
[0012] 一种启动项耗时的测算装置,包括:
[0013] 关系获取单元,用于获取监控时间段内各进程之间的父子关系;
[0014] 进程确定单元,用于确定第一进程和第二进程;所述第一进程为待计算的启动项对应的进程,所述第二进程为依据所述关系获取单元获取的各进程项之间的父子关系确定的所述第一进程的子进程;
[0015] 耗时计算单元,用于计算进程耗时,所述计算进程耗时包括:计算所述第一进程的耗时以及第二进程的耗时;将所述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。
[0016] 从以上技术方案可以看出,本发明实施例具有以下优点:采用如上方案,不仅记录了启动项对应的进程的耗时,还计算了该进程的子进程的耗时,分析进程对系统启动时间的影响,不再终止于其其自身加载结束,而是综合考虑进程在整个监控时间段内进程自身以及其子进程,因而能够更加准确的确定启动项在开机阶段的耗时。

附图说明

[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为本发明实施例方法流程示意图;
[0019] 图2为本发明实施例另一方法流程示意图;
[0020] 图3为本发明实施例装置结构示意图;
[0021] 图4为本发明实施例另一装置结构示意图;
[0022] 图5为本发明实施例另一装置结构示意图。

具体实施方式

[0023] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024] 发明人在实现本发明实施例的过程中发现,由于在开机阶段,一个进程加载结束了,并不代表该进程就停止运行了,在其他进程加载的过程中,该进程还在运行后续的逻辑,仍会消耗系统资源,甚至还会拉起其他进程,这些都会影响系统的开机。仅以一个进程完成加载就认为改进程在开机阶段已完成,这种孤立地看待一个进程自身加载来评估对整个系统运行的影响,得到的进程开机耗时将会偏少。因此前述方案不能准确的测算进程耗时。基于此本发明实施例提供了一种启动项耗时的测算方法,如图1所示,包括:
[0025] 101:获取监控时间段内各进程之间的父子关系,并确定第一进程和第二进程;上述第一进程为待计算的启动项对应的进程,上述第二进程为依据上述各进程项之间的父子关系确定的上述第一进程的子进程;
[0026] 可以理解的是,一个进程的子进程可以为空,也可以为一个或者一个以上,子进程还可以有子进程,统称为第二进程,具体的子进程个数本发明实施例不予限定。本实施例在后续说明中会给出各进程之间的父子关系如何获得的举例说明。
[0027] 102:计算进程耗时,上述计算进程耗时包括:计算上述第一进程的耗时以及第二进程的耗时;
[0028] 需要说明的是,以上步骤101和102并不存在逻辑上的先后次序,先执行101得到各进程的父子关系,然后执行102得到第一进程的耗时和第二进程的耗时,是可以的;先执行102获得所有进程的耗时,然后再执行101获得个进程之间的父子关系,也是可以的。
[0029] 发明人在实现本发明实施例的过程中,还发现:进程的I/O(Input/Output,输入/输出)是进程在启动过程中所占用的资源,会对进程启动构成影响。因此,I/O时间也应属于进程耗时的一部分。优选采用如下方式:上述计算进程耗时包括:计算进程的中央处理器耗时以及进程的输入/输出耗时,将进程的中央处理器耗时与进程的输入/输出耗时的和作为进程耗时。
[0030] 更具体地,本发明实施例还给出了具体如何计算进程的输入/输出耗时的方案,如下:上述监控时间段为开机时间的时间段,上述计算进程的输入/输出耗时包括:计算系统开机时间与所有进程的中央处理器时间总和以及系统空闲时间的差,计算设定的输入/输出时间占系统开机时间的比例与进程的输入/输出吞吐量的积再与所有进程的输入/输出吞吐量的商,计算上述差与上述商的积作为上述进程的输入/输出耗时。
[0031] 获取进程I/O耗时的方法,也可以通过内核态程序注册ETW(Event Tracing for Windows,ETW提供了一种对用户层应用程序和内核层驱动创建的事件对象的跟踪记录机制)事件的方法,捕获每一个进程的I/O时间,这样也可以精确的确定I/O耗时。
[0032] 更具体地,由于进程可能存在等待的情况,该情况不属于系统启动过程中耗费的资源,因此可以排除在外,进一步提高进程耗时计算的准确度,具体如下:用于计算的上述系统开机时间以及系统空闲时间不包含进程等待过程中的中央处理器耗时,所有进程的输入/输出吞吐量不包含等待过程中的输入/输出耗时。
[0033] 上述设定的输入/输出时间占总时间的比例可以是一个经验值,预先设置,计算的时候直接采用就可以了,具体如下:上述设定的输入/输出时间占总时间的比例的值域为(0,1.0)。
[0034] 发明人在实现本发明实施例的过程中还发现:背景技术中的方案中,由于监控执行主体需要在被监控的进程之前运行,监控执行主体自身对系统资源消耗就可能很高。因此该方案对执行的时机要求过高。本发明实施例还提供了以下解决方案:优选地,上述监控时间段内各进程之间的父子关系、进程的中央处理器耗、进程的输入/输出吞吐量中的至少一项的获取方式包括:
[0035] 采用定时中断的方式获取当前的所有进程,并保存本次中断与前次中断相比的新的进程的句柄信息;读取与上述句柄信息对应的应用程序编程接口得到。
[0036] 采用本实施例方案执行监控的进程可以不必在被监控的进程之前运行,这样就可以降低对执行时机的要求。
[0037] 103:将上述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。
[0038] 采用如上方案,不仅记录了启动项对应的进程的耗时,还计算了该进程的子进程的耗时,分析进程对系统启动时间的影响,不再终止于其其自身加载结束,而是综合考虑进程在整个监控时间段内进程自身以及其子进程,因而能够更加准确的确定启动项在开机阶段的耗时。
[0039] 在以上实施例中,子进程由父进程创建(即第二进程由第一进程创建),一个父进程可能有多个子进程,而子进程也可能有他自己的子进程,在前述实施例中将父进程的子进程以及子进程的子进程全部统称为第二进程。
[0040] 例如:QQ.exe是由QQProtect.exe创建的,而QQExternal.exe是由QQ.exe创建的,如果QQProtect.exe、QQ.exe、QQExternal.exe三个进程自身的耗时分别是T1、T2、T3那么:
[0041] QQExternal.exe的耗时是T3,QQ.exe的耗时是T2+T3,QQProtect.exe的耗时是T1+T2+T3。
[0042] 通过本发明实施例的方案,只需要将监控软件设为一个服务在开机过程中运行便能较准确的获得系统中的启动项在开机阶段的耗时。如果将这些信息展示给用户,用户可以自行决定将那些启动项禁用掉,让其不在开机阶段运行,从而提高用户系统的开机时间,进而提高整个系统的运行速度。
[0043] 以下给出一个以上方案的具体实现举例,为方便表述,首先定义了如下参数:Ts表示启动项耗时,TP表示进程耗时(即启动项对应的进程的耗时),Tp-child表示子进程耗时,Tcpu表示进程CPU耗时,TI/O表示进程的I/O耗时,CNTI/O进程I/O吞吐量,Tall表示系统开机时间,C表示设定的I/O时间占运行时间的比例,Tfree系统中的CPU空闲时间。
[0044] 可以理解的是,Tall是指从机器上电开始到判定开机启动完成的时间,即为系统开机时间。但是这个时间包括了用户在登录界面的等待时间,这段时间需要剔除,这段时间的长度的获取方法是用当前会话(Session)的创建时间减去lssas.exe进程的创建时间,剔除后的时间就是系统开机时间。
[0045] Tcpu、CNTI/O和Tfree以及所有进程的CPU耗时和I/O吞吐量的过程如下,具体请参阅图2,包括:
[0046] 201:判断是否时钟中断,如果是,进入202,否则进入201;
[0047] 本步骤中需要预先设定一个用于控制中断的时间间隔t,在监控软件启动以后,每隔一个时间间隔t执行一次中断,t可以为任意时间间隔,经验值可以设为1秒。
[0048] 202:枚举系统上所有进程并获得其进程信息;
[0049] 203:判断有没有新的进程(即未被监控软件记录在内存的进程)被创建;如果有,进入204,如果没有,进入208;
[0050] 204:将新建进程的句柄(Handle)、进程ID(IDentity,标识)等信息保存在内存,进程ID可以是PID(Process ID,进程ID号);
[0051] 205:判断是否发现首次出现lsass.exe进程,如果是,进入206,如果否,进入207;
[0052] 206:将当前所有进程的信息保存;
[0053] 本步骤中,保存的信息可以有:PID、CPU使用率、I/O读写量等,保存的位置可以是内存,也可以是文件,本实施例不予限定。
[0054] 207:判断是否为用户首次登录,如果是,进入206,如果否进入208;
[0055] 208:判断本次开机是否已经完成,如果是,进入209,否则进入201;
[0056] 209:结束时钟,并计算每个进程的耗时,以及启动项耗时。
[0057] 计算方法如下,205到206以及207到206的的两个过程,在这两个过程中保存了两次信息,据此可以得到这两次之间的CPU时间和I/O吞吐量的变化,两者相减可以得到差值,这差值是用户在登录等待界面的消耗(CPU时间和I/O吞吐量的消耗),该部分不算在进程在开机过程的消耗里。
[0058] 保存进程句柄信息,可以通过视窗(Windows)API(Application Programming Interface,应用程序编程接口)得到最后获得进程在保存句柄信息时的CPU时间、I/O吞吐量、各进程之间的父子关系。此时的CPU时间和I/O吞吐量减去前述差值,这个就得到了这个进程在整个开机阶段的CPU耗时和I/O吞吐量。所有进程中,名称为“System idle Process”进程的CPU时间就是Tfree(该时间也需减去登录等待阶段的那部分时间)。此处需要注意的是,在CPU为多核的机器上,我们计算的Tcpu和Tfree都要除以CPU的核数。
[0059] 经过上面可以得到各个进程的CPU时间Tcpu,I/O吞吐量CNTI/O,再用Tfree和Tall套用可以得到每一进程的TI/O,假定进程数为i,如式(1)所示:
[0060] 式(1)
[0061] 描述:进程I/O耗时=(系统开机时间-所有进程的CPU时间总和-系统空闲时间)×设定的I/O时间占总时间的比例×进程的I/O吞吐量÷全部进程的I/O吞吐量;其中C是一个经验值,值域为(0,1.0)。
[0062] 在得到TI/O后,再计算得到每一个进程的开机耗时TP,如式(2)所示:
[0063] TP=Tcpu+TI/O式(2)
[0064] 描述 :进程耗时= 进程运行过程中消耗的CPU时间+进程运行过程中消耗的I/O时间。
[0065] 通过句柄信息以及对应的系统的API可以获得进程的所有子进程,子进程的开机耗时可以参考前述方案中进程耗时的计算方法得到。这样,我们通过式(3)就得到了一个启动项在开机阶段的耗时TS,假定有i个子进程。
[0066] 式(3)
[0067] 发明人在实现本发明实施例的过程中发现,由于在开机阶段,一个进程加载结束了,并不代表该进程就停止运行了,在其他进程加载的过程中,该进程还在运行后续的逻辑,仍会消耗系统资源,甚至还会拉起其他进程,这些都会影响系统的开机。仅以一个进程完成加载就认为改进程在开机阶段已完成,这种孤立地看待一个进程自身加载来评估对整个系统运行的影响,得到的进程开机耗时将会偏少。因此前述方案不能准确的测算进程耗时。基于此本发明实施例还提供了一种启动项耗时的测算装置,如图3所示,包括:
[0068] 关系获取单元301,用于获取监控时间段内各进程之间的父子关系;
[0069] 可以理解的是,一个进程的子进程可以为空,也可以为一个或者一个以上,具体的子进程个数本发明实施例不予限定。本实施例在后续说明中会给出各进程之间的父子关系如何获得的举例说明。
[0070] 进程确定单元302,用于确定第一进程和第二进程;上述第一进程为待计算的启动项对应的进程,上述第二进程为依据上述关系获取单元301获取的各进程项之间的父子关系确定的上述第一进程的子进程;
[0071] 耗时计算单元303,用于计算进程耗时,上述计算进程耗时包括:计算上述第一进程的耗时以及第二进程的耗时;将上述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。
[0072] 采用如上方案,不仅记录了启动项对应的进程的耗时,还计算了该进程的子进程的耗时,分析进程对系统启动时间的影响,不再终止于其其自身加载结束,而是综合考虑进程在整个监控时间段内进程自身以及其子进程,因而能够更加准确的确定启动项在开机阶段的耗时。
[0073] 发明人在实现本发明实施例的过程中,还发现:进程的I/O(Input/Output,输入/输出)是进程在启动过程中所占用的资源,会对进程启动构成影响。因此,I/O时间也应属于进程耗时的一部分。优选采用如下方式:上述耗时计算单元303,具体用于计算进程的中央处理器耗时以及进程的输入/输出耗时,将进程的中央处理器耗时与进程的输入/输出耗时的和作为进程耗时。
[0074] 更具体地,本发明实施例还给出了具体如何计算进程的输入/输出耗时的方案,如下:上述监控时间段为开机时间的时间段;上述耗时计算单元303,具体用于计算系统开机时间与所有进程的中央处理器时间总和以及系统空闲时间的差,计算设定的输入/输出时间占系统开机时间的比例与进程的输入/输出吞吐量的积再与所有进程的输入/输出吞吐量的商,计算上述差与上述商的积作为上述进程的输入/输出耗时。
[0075] 更具体地,由于进程可能存在等待的情况,该情况不属于系统启动过程中耗费的资源,因此可以排除在外,上述耗时计算单元303,具体用于计算的系统开机时间以及系统空闲时间不包含进程等待过程中的中央处理器耗时,所有进程的输入/输出吞吐量不包含等待过程中的输入/输出耗时。
[0076] 上述设定的输入/输出时间占总时间的比例可以是一个经验值,预先设置,计算的时候直接采用就可以了,具体如下:上述耗时计算单元303,具体用于计算使用的上述设定的输入/输出时间占总时间的比例的值域为(0,1.0)。
[0077] 发明人在实现本发明实施例的过程中还发现:背景技术中的方案中,由于监控执行主体需要在被监控的进程之前运行,监控执行主体自身对系统资源消耗就可能很高。因此该方案对执行的时机要求过高。本发明实施例还提供了以下解决方案:进一步地,如图4所示,上述装置,还包括:
[0078] 信息获取单元401,用于获取上述监控时间段内各进程之间的父子关系、进程的中央处理器耗、进程的输入/输出吞吐量中的至少一项,且获取方式为:采用定时中断的方式获取当前的所有进程,并保存本次中断与前次中断相比的新的进程的句柄信息;读取与上述句柄信息对应的应用程序编程接口得到。
[0079] 采用本实施例方案执行监控的进程可以不必在被监控的进程之前运行,这样就可以降低对执行时机的要求。
[0080] 本发明实施例还提供了另一种图像显示控制装置,如图5所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0081] 图5示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图5,手机包括:射频(Radio Frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,WiFi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图5中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0082] 下面结合图5对手机的各个构成部件进行具体的介绍:
[0083] RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路50还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
[0084] 存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0085] 输入单元530可用于接收输入的数字或字符信息,以及产生与手机500的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0086] 显示单元540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触控面板531与显示面板541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现手机的输入和输出功能。
[0087] 手机500还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0088] 音频电路560、扬声器561,传声器562可提供用户与手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一手机,或者将音频数据输出至存储器520以便进一步处理。
[0089] WiFi属于短距离无线传输技术,手机通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了WiFi模块570,但是可以理解的是,其并不属于手机500的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0090] 处理器580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
[0091] 手机500还包括给各个部件供电的电源590(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0092] 尽管未示出,手机500还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0093] 在本发明实施例中,该终端所包括的处理器580还具有以下功能:
[0094] 获取监控时间段内各进程之间的父子关系,并确定第一进程和第二进程;上述第一进程为待计算的启动项对应的进程,上述第二进程为依据上述各进程项之间的父子关系确定的上述第一进程的子进程;
[0095] 计算进程耗时,上述计算进程耗时包括:计算上述第一进程的耗时以及第二进程的耗时;
[0096] 将上述第一进程的耗时以及第二进程的耗时之和作为待计算的启动项的耗时。
[0097] 可以理解的是,一个进程的子进程可以为空,也可以为一个或者一个以上,子进程还可以有子进程,统称为第二进程,具体的子进程个数本发明实施例不予限定。
[0098] 发明人在实现本发明实施例的过程中,还发现:进程的I/O(Input/Output,输入/输出)是进程在启动过程中所占用的资源,会对进程启动构成影响。因此,I/O时间也应属于进程耗时的一部分。优选采用如下方式:上述计算进程耗时包括:计算进程的中央处理器耗时以及进程的输入/输出耗时,将进程的中央处理器耗时与进程的输入/输出耗时的和作为进程耗时。
[0099] 更具体地,本发明实施例还给出了具体如何计算进程的输入/输出耗时的方案,如下:上述监控时间段为开机时间的时间段,上述计算进程的输入/输出耗时包括:计算系统开机时间与所有进程的中央处理器时间总和以及系统空闲时间的差,计算设定的输入/输出时间占系统开机时间的比例与进程的输入/输出吞吐量的积再与所有进程的输入/输出吞吐量的商,计算上述差与上述商的积作为上述进程的输入/输出耗时。
[0100] 获取进程I/O耗时的方法,也可以通过内核态程序注册ETW(Event Tracing for Windows,ETW提供了一种对用户层应用程序和内核层驱动创建的事件对象的跟踪记录机制)事件的方法,捕获每一个进程的I/O时间,这样也可以精确的确定I/O耗时。
[0101] 更具体地,由于进程可能存在等待的情况,该情况不属于系统启动过程中耗费的资源,因此可以排除在外,进一步提高进程耗时计算的准确度,具体如下:用于计算的上述系统开机时间以及系统空闲时间不包含进程等待过程中的中央处理器耗时,所有进程的输入/输出吞吐量不包含等待过程中的输入/输出耗时。
[0102] 可选地,上述设定的输入/输出时间占总时间的比例的值域为(0,1.0)。
[0103] 可选地,上述监控时间段内各进程之间的父子关系、进程的中央处理器耗、进程的输入/输出吞吐量中的至少一项的获取方式包括:
[0104] 采用定时中断的方式获取当前的所有进程,并保存本次中断与前次中断相比的新的进程的句柄信息;读取与上述句柄信息对应的应用程序编程接口得到。
[0105] 值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0106] 另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0107] 以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。