CN102646066B - 一种开机时间的获取方法及装置 - Google Patents
一种开机时间的获取方法及装置 Download PDFInfo
- Publication number
- CN102646066B CN102646066B CN 201210040970 CN201210040970A CN102646066B CN 102646066 B CN102646066 B CN 102646066B CN 201210040970 CN201210040970 CN 201210040970 CN 201210040970 A CN201210040970 A CN 201210040970A CN 102646066 B CN102646066 B CN 102646066B
- Authority
- CN
- China
- Prior art keywords
- time
- time period
- created
- moment
- starting
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Electric Clocks (AREA)
Abstract
本发明公开了一种开机时间的获取方法及装置,属于计算机技术领域。所述开机时间的获取方法包括:获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建的时刻的时间间隔,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值;判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间。本发明提高了开机时间的精确度。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种开机时间的获取方法及装置。
背景技术
在用户使用计算机的过程中,计算机开机时间的长短直接影响用户的体验度,因此用户需要根据获取到的开机时间及时地对系统进行优化处理;其中计算机的开机时间为计算机从开机启动时刻到启动程序全部加载完成时刻的时间间隔。
现有技术中,当计算机开机启动时,程序通过检测注册表或文件中注册的开机启动程序对应的进程是否被创建来判定开机启动是否完成,当所有在注册表或文件中注册的开机启动程序对应的进程都被创建后,计算机通过获取系统运行时间的API(Application ProgrammingInterface,应用程序编程接口)函数来获取该时刻的时间,从而获取计算机的开机时间。
但是,开机启动服务对应的进程都被创建并不代表着启动程序已经全部加载完成,因此该方法获取的计算机的开机时间距离启动程序全部加载完成的时间,即用户可以正常使用计算机的时间还有一段时间,降低了计算机的开机时间的精确度。
发明内容
为了提高开机时间的精确度,本发明实施例提供了一种开机时间的获取方法及装置。所述技术方案如下:
一种开机时间的获取方法,包括:
获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值;
判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间;
其中,所述判断用户在所述第二时间段内是否运行程序包括:
判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
一种开机时间的获取装置,包括:
获取模块,用于获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值;
判断处理模块,用于判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间;
其中,所述判断处理模块包括:
第一判断子模块,用于判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
本发明实施例提供的技术方案带来的有益效果是:获取第一时间段和第二时间段,当用户在第二时间段内运行程序时,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间,本实施例中综合考虑了第二时间段和用户在开机过程中的相关操作等因素对开机时间精确度的影响,相比较现有技术只把第一时间段作为开机时间而言,本实施例中根据所述第一时间段、第二时间段和预设误差因子获取的开机时间的精确度提高了。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种开机时间的获取方法实施例的流程图;
图2是本发明实施例2提供的一种开机时间的获取方法实施例的流程图;
图3是本发明实施例3提供的一种开机时间的获取装置实施例的第一结构示意图;
图4是本发明实施例3提供的一种开机时间的获取装置实施例的第二结构示意图;
图5是本发明实施例3提供的一种开机时间的获取装置实施例的第三结构示意图;
图6是本发明实施例3提供的一种开机时间的获取装置实施例的第四结构示意图;
图7是本发明实施例3提供的一种开机时间的获取装置实施例的第五结构示意图。
具体实施方式
本实施例提供了一种开机时间的获取方法及装置。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参考图1,图1是本发明实施例1提供的一种开机时间的获取方法实施例的流程图;所述开机时间的获取方法包括:
S101:获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值。
此步骤中,所述第一时间段为从开机启动的时刻到开机启动程序对应的进程都被创建的时刻的时间间隔;所述第二时间段为从开机启动的时刻到CPU使用率低于所述预设阀值的时刻的时间间隔,其中所述CPU使用率低于所述预设阀值的时刻之前的所述预设时间内的CPU使用率均低于预设阀值。
S102:判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间。
优选地,所述判断用户在所述第二时间段内是否运行程序包括:
判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
优选地,所述判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建包括:
遍历所述第二时间段内的所有进程;
判断所述所有进程中是否存在所述开机启动程序对应的进程都被创建的时刻之后创建的新进程。
优选地,所述判断所述所有进程中是否存在所述开机启动程序对应的进程都被创建的时刻之后创建的新进程包括:
获取所述所有进程中所述开机启动程序对应的进程都被创建的时刻之后创建的新进程;
判断所述新进程的父进程身份标识PID是否是资源管理器进程或者图标管理软件进程。
优选地,所述判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建包括:
在所述开机启动程序对应的进程都被创建的时刻,创建第一进程快照;
在所述CPU使用率低于预设阀值的时刻,创建第二进程快照;
判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程。
优选地,所述判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程包括:
获取所述第二进程快照中除所述第一进程快照中进程之外的新进程;
判断所述新进程的父PID是否是资源管理器进程或者图标管理软件进程。
优选地,所述判断用户在所述第二时间段内是否运行程序包括:
获取所述第二时间段内所有进程的父PID;
判断所述父PID是否是资源管理器进程或者图标管理软件进程。
优选地,所述判断用户在所述第二时间段内是否运行程序包括:
获取用户点击鼠标的时间;
判断所述用户点击鼠标的时间是否在所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间。
优选地,所述根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间之前,进一步包括:
判断所述第二时间段和所述第一时间段的差是否大于预设值;
相应的,所述根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间具体为:
如果所述第二时间段和所述第一时间段的差大于所述预设值,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间,包括:
将所述第二时间段和所述第一时间段的差与预设误差因子相乘,生成估算误差时间;
将所述第一时间段和所述估算误差时间相加,生成开机时间。
优选地,所述方法还包括:
如果用户在所述第二时间段内没有运行程序,将所述第二时间段作为开机时间。
或者,如果用户在所述第二时间段内运行程序,且当所述第二时间段和所述第一时间段的差小于所述预设值,将所述第二时间段作为开机时间。
本实施例中,获取第一时间段和第二时间段,当用户在第二时间段内运行程序时,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间,本实施例中综合考虑了第二时间段和用户在开机过程中的相关操作等因素对开机时间精确度的影响,相比较现有技术只把第一时间段作为开机时间而言,本实施例中根据所述第一时间段、第二时间段和预设误差因子获取的开机时间的精确度提高了。
实施例2
参考图2,图2是本发明实施例2提供的一种开机时间的获取方法实施例的流程图;本实施例中的终端可以为计算机,但是并不局限于此;
所述开机时间的获取方法包括:
S201:终端获取第一时间段和第二时间段。
此步骤中,获取第一时间段的方法与现有技术类似,在此不再赘述,其中所述第一时间段为终端从开机启动的时刻到开机启动程序对应的进程都被创建的时刻的时间间隔。
在终端开机启动时,程序通过轮询的方式监控终端的CPU(Central Processing Unit,中央处理器)使用率,若检测到预设时间内所述CPU使用率均低于预设阀值时,则认为开机启动结束,终端通过获取系统运行时间的API函数来获取CPU使用率低于预设阀值的时刻,从而获取第二时间段;其中所述第二时间段为从开机启动的时刻到所述CPU使用率低于预设阀值的时刻的时间间隔,所述CPU使用率低于预设阀值的时刻之前的所述预设时间内的CPU使用率均低于所述预设阀值;所述第二时间段大于所述第一时间段。
其中所述预设时间、所述预设阀值可以由程序开发人员进行设置,在此不作具体限定,例如所述预设时间为5秒,所述预设阀值为5%,但是并不局限于此。
本实施例中,所述第一时间段还可以用第三时间来代替,其中所述第三时间为从开机启动的时刻到检测到Explorer.exe启动完成(即桌面显示完成)的时刻的时间间隔,或者,所述第一时间段还可以用第四时间来代替,其中所述第四时间为从开机启动的时刻到检测到服务进程启动完成的时刻的时间间隔。
S202:终端判断用户在所述第二时间段内是否运行程序,如果否,执行S203,如果是,执行S204。
此步骤中,终端判断用户在所述第二时间段内是否运行程序包括:
终端判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
其中,如果所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间有新进程被创建,则表示用户在所述第二时间段内执行了程序。
其中,终端可以根据进程创建时间来判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建,具体地,当终端开机启动后,终端记录所述开机启动程序对应的进程都被创建的时刻对应的时间戳StartupTimeAutoStartProcess,然后当所述预设时间内CPU使用率均低于所述预设阀值后,遍历所述第二时间段内的所有进程,判断所述所有进程中是否存在StartupTimeAutoStartProcess时间戳之后创建的新进程,这些新进程被认为是开机启动后由用户手动启动的进程。
优选的,所述判断所述所有进程中是否存在StartupTimeAutoStartProcess时间戳之后创建的新进程包括:获取所述所有进程中所述StartupTimeAutoStartProcess时间戳之后创建的新进程;判断所述新进程的父PID(Process Identify,进程身份标识)是否是资源管理器进程Explorer.exe或者图标管理软件进程,如果是,则表示所述新进程为开机启动后用户手动启动的进程。所述图标管理软件进程为第三方程序,例如Q+、QQ桌面等程序;所述图标管理软件进程可以以白名单的形式进行存储。
或者,终端可以根据前后两个时间点的进程快照来判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建,具体地,当终端开机启动后,终端在所述开机启动程序对应的进程都被创建的时刻,创建第一进程快照;终端在所述CPU使用率低于预设阀值的时刻,创建第二进程快照;终端判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程,这些新进程被认为是是开机启动后由用户手动启动的进程。
优选的,所述判断第二进程快照中是否存在除所述第一进程快照中进程之外的新进程包括:获取所述第二进程快照中除所述第一进程快照中进程之外的新进程;判断所述新进程的父PID是否是资源管理器进程或者图标管理软件进程,如果是,则表示所述新进程为开机启动后用户手动启动的进程。所述图标管理软件进程为第三方程序,例如Q+、QQ桌面等程序。
本实施例中,所述终端判断用户在所述第二时间段内是否运行程序还可以包括:
获取所述第二时间段内所有进程的父PID;判断所述父PID是否是资源管理器进程或者图标管理软件进程。
具体地,通过API HOOK(钩子)技术向系统注入一段准备好的检测代码。终端在开机启动时,任何一个进程被创建之前都会先执行注入系统的所述检测代码,并在检测代码中记录下当前该进程的父PID;然后终端判断所述父PID是否为资源管理器进程Explorer.exe或者图标管理软件进程,如果是,则认为开机启动阶段有用户手动运行了相关程序。
或者,获取用户点击鼠标的时间;判断所述用户点击鼠标的时间是否在所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间。
具体地,终端通过向操作系统注册全局的消息钩子来获取用户点击鼠标的时间,再判断所述用户点击鼠标的时间是否在所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间,如果是,则认为开机启动阶段有用户手动运行了相关程序。
S203:终端将所述第二时间段作为开机时间。
如果用户在所述第二时间段内没有运行程序,也就是说终端从开机启动到启动程序全部加载完成的过程中用户都没有运行程序或者进行相关操作,那么此时的所述第二时间段就是终端精确的开机时间。终端完成开机后,正式进入正常使用计算机状态,即计算机的CPU、内存等空闲资源可以分配给用户进行手动启动进程的状态。
如果用户在所述第二时间段内运行了程序,且所述第二时间段和所述第一时间段的差小于所述预设值,终端可以将所述第二时间段作为开机时间。例如,所述预设值为5秒,所述第二时间段和所述第一时间段的差很小,为1秒时,此时即使检测到用户在所述第二时间段内运行了程序,那么这个程序对开机的影响很小,可以忽略不计,所以还是可以讲所述第二时间段作为开机时间。其中所述预设值可以手动设置,也可以根据相应算法自动进行计算,在此不做具体限定。
S204:终端判断所述第二时间段和所述第一时间段的差是否大于预设值,如果否,执行S203,如果是,执行S205。
如果用户在所述第二时间段内运行了程序,也就是说终端在开机启动到启动程序全部加载完成的过程中用户运行了程序或进行了相关操作,那么此时的第二时间段就不是精确的开机时间了,因为用户运行的程序会抢占计算机的资源,从而延后了启动程序启动完成的时间,因此精确的开机时间应该是位于所述第一时间段和所述第二时间段之间。
当用户在所述第二时间段内运行了程序后,终端还需要判断所述第二时间段和所述第一时间段的差是都大于预设值,根据判断结果执行相应的后续处理来获取精确的开机时间。
S205:终端根据所述第一时间段、第二时间段和预设误差因子获取开机时间。
此步骤中,当用户在所述第二时间段内运行了程序,且所述第二时间段和所述第一时间段的差大于预设值时,终端按照如下两个公式获取精确的开机时间;
StartupTime_Final=StartupTime_AutoStartProcess+Interval*factor (1)
Interval=StartupTime_CPU-StartupTime_AutoStartProcess (2)
其中,StartupTime_Final表示精确的开机时间,StartupTime_AutoStartProcess表示所述第一时间段,StartupTime_CPU表示所述第二时间段,Interval表示所述第二时间段和所述第一时间段的差,factor表示预设误差因子。例如,假设第一时间段为35秒,第二时间段为40秒,factor为0.2,根据上述公式(1)和(2)计算可知,开机时间StartupTime_Final为36秒。
factor参数可以根据Interval的大小来确定。在正常情况下,Interval代表了从所有自启动程序启动的那一刻到系统运行平稳的时间。客户运行的启动程序越多,那么系统平稳状态所用的时间就越久,Interval的值总体会越来越大,则factor的值越小;因为Interval的值越大表示由于用户操作而导致开机启动完成推迟的时间越大,也就是说Interval的值受用户影响越大,那么factor的值应该越小。反之,若Interval的值越小,则factor的值越大,因为Interval越小表示由于用户操作而导致开机启动完成推迟的时间越小,也就是Interval的值受用户影响越小,那么factor的值应该越大。
factor参数的引入可以在一定程度上去除了开机启动时用户手动运行的程序对开机时间的干扰,使得开机时间的精确度提高。
例如,本实施例中以所述预设阀值定义为StartupTimeAutoStartProcess时间戳的50%为例来描述Interval与factor的对应关系,具体可参见表1。
表1
Interval实际值 | Interval阀值 | factor |
100%>Interval | StartupTimeAutoStartProcess*50% | 1.0 |
120%>Interval>100% | StartupTimeAutoStartProcess*50% | 0.8 |
140%>Interval>120% | StartupTimeAutoStartProcess*50% | 0.6 |
160%>Interval>140% | StartupTimeAutoStartProcess*50% | 0.4 |
180%<Interval | StartupTimeAutoStartProcess*50% | 0.2 |
表1只是列举了一个例子而已,本实施例中Interval与factor的对应关系并不局限于表1,开发者还可以根据实际情况对所述预设阀值以及Interval与factor的对应关系进行相应的调整,在此不再一一枚举。
本实施例中,获取第一时间段和第二时间段,当用户在第二时间段内运行程序时,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间,本实施例中综合考虑了第二时间段和用户在开机过程中的相关操作等因素对开机时间精确度的影响,相比较现有技术只把第一时间段作为开机时间而言,本实施例中根据所述第一时间段、第二时间段和预设误差因子获取的开机时间的精确度提高了。
此外,本实施例所述方法还可以获取终端在开机启动期间用户手动启动的程序,以备后续使用。factor参数的引入也在一定程度上去除了开机启动期间用户手动运行的程序对开机时间的干扰,使得开机时间的精确度提高。
实施例3
参考图3,图3是本发明实施例3提供的一种开机时间的获取装置实施例的第一结构示意图;本实施例中所述开机时间的获取装置可以是终端,具体可以是计算机,但是并不局限于此。
所述开机时间的获取装置包括:
获取模块301,用于获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值。
判断处理模块302,用于判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间。
其中,所述判断处理模块302包括:第一判断子模块3021;
所述第一判断子模块3021,用于判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
所述第一判断子模块3021包括遍历单元30211和第一判断单元30212,如图4所示,图4是本发明实施例3提供的一种开机时间的获取装置实施例的第二结构示意图;
所述遍历单元30211,用于遍历所述第二时间段内的所有进程;
所述第一判断单元30212,用于判断所述所有进程中是否存在所述开机启动程序对应的进程都被创建的时刻之后的新进程。
其中所述第一判断单元30212包括:
第一获取子单元,用于获取所述所有进程中所述开机启动程序对应的进程都被创建的时刻之后的新进程;
第一判断子单元,用于判断所述新进程的父进程身份标识PID是否是资源管理器进程或者图标管理软件进程。
本实施例的另一实施方式中,所述第一判断子模块3021包括:第一创建单元30213、第二创建单元30214和第二判断单元30215,如图5所示,图5是本发明实施例3提供的一种开机时间的获取装置实施例的第三结构示意图;
第一创建单元30213,用于在所述开机启动程序对应的进程都被创建的时刻,创建第一进程快照;
第二创建单元30214,用于在所述CPU使用率低于预设阀值的时刻,创建第二进程快照;
第二判断单元30215,用于判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程。
其中,所述第二判断单元30215包括:
第二获取子单元,用于获取所述第二进程快照中除所述第一进程快照中进程之外的新进程;
第二判断子单元,用于判断所述新进程的父PID是否是资源管理器进程或者图标管理软件进程。
本实施例的另一实施方式中,所述判断处理模块302可以包括:第一获取子模块3022和第二判断子模块3023,如图6所示,图6是本发明实施例3提供的一种开机时间的获取装置实施例的第四结构示意图;
所述第一获取子模块3022,用于获取所述第二时间段内所有进程的父PID;
所述第二判断子模块3023,用于判断所述父PID是否是资源管理器进程或者图标管理软件进程。
本实施例的另一实施方式中,所述判断处理模块302包括:第二获取子模块3024和第三判断子模块3025,如图7所示,图7是本发明实施例3提供的一种开机时间的获取装置实施例的第五结构示意图;
所述第二获取子模块3024,用于获取用户点击鼠标的时间;
所述第三判断子模块3025,用于判断所述用户点击鼠标的时间是否在所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间。
在上述所有实施方式的基础上,所述装置进一步包括:
判断模块,用于在所述根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间之前,判断所述第二时间段和所述第一时间段的差是否大于预设值;
相应的,所述判断处理模块302包括:
获取子模块,用于如果所述第二时间段和所述第一时间段的差大于所述预设值,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间;
其中获取子模块包括:
误差时间生成单元,用于将所述第二时间段和所述第一时间段的差与预设误差因子相乘,生成估算误差时间;
开机时间生成单元,用于将所述第一时间段和所述估算误差时间相加,生成开机时间。
在本实施例的另一实施方式中,所述开机时间的获取装置在包括获取模块301和判断处理模块302的基础上还包括:第一生成模块或第二生成模块;
所述第一生成模块,用于如果用户在所述第二时间段内没有运行程序,将所述第二时间段作为开机时间。
或者,
所述第二生成模块,用于如果用户在所述第二时间段内运行程序,且当所述第二时间段和所述第一时间段的差小于所述预设值,将所述第二时间段作为开机时间。
本实施例中,获取第一时间段和第二时间段,当用户在第二时间段内运行程序时,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间,本实施例中综合考虑了第二时间段和用户在开机过程中的相关操作等因素对开机时间精确度的影响,相比较现有技术只把第一时间段作为开机时间而言,本实施例中根据所述第一时间段、第二时间段和预设误差因子获取的开机时间的精确度提高了。
此外,本实施例所述方法还可以获取终端在开机启动期间用户手动启动的程序,以备后续使用。factor参数的引入也在一定程度上去除了开机启动期间用户手动运行的程序对开机时间的干扰,使得开机时间的精确度提高。
要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种开机时间的获取方法,其特征在于,包括:
获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值;
判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间;
其中,所述判断用户在所述第二时间段内是否运行程序包括:
判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
2.根据权利要求1所述的方法,其特征在于,所述判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建包括:
遍历所述第二时间段内的所有进程;
判断所述所有进程中是否存在所述开机启动程序对应的进程都被创建的时刻之后创建的新进程。
3.根据权利要求2所述的方法,其特征在于,所述判断所述所有进程中是否存在所述开机启动程序对应的进程都被创建的时刻之后创建的新进程包括:
获取所述所有进程中所述开机启动程序对应的进程都被创建的时刻之后创建的新进程;
判断所述新进程的父进程身份标识PID是否是资源管理器进程或者图标管理软件进程。
4.根据权利要求1所述的方法,其特征在于,所述判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建包括:
在所述开机启动程序对应的进程都被创建的时刻,创建第一进程快照;
在所述CPU使用率低于预设阀值的时刻,创建第二进程快照;
判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程。
5.根据权利要求4所述的方法,其特征在于,所述判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程包括:
获取所述第二进程快照中除所述第一进程快照中进程之外的新进程;
判断所述新进程的父PID是否是资源管理器进程或者图标管理软件进程。
6.根据权利要求1所述的方法,其特征在于,所述判断用户在所述第二时间段内是否运行程序包括:
获取所述第二时间段内所有进程的父PID;
判断所述父PID是否是资源管理器进程或者图标管理软件进程。
7.根据权利要求1所述的方法,其特征在于,所述判断用户在所述第二时间段内是否运行程序包括:
获取用户点击鼠标的时间;
判断所述用户点击鼠标的时间是否在所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间之前,进一步包括:
判断所述第二时间段和所述第一时间段的差是否大于预设值;
相应的,所述根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间具体为:
如果所述第二时间段和所述第一时间段的差大于所述预设值,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间,包括:
将所述第二时间段和所述第一时间段的差与预设误差因子相乘,生成估算误差时间;
将所述第一时间段和所述估算误差时间相加,生成开机时间。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
如果用户在所述第二时间段内没有运行程序,将所述第二时间段作为开机时间;
或者,如果用户在所述第二时间段内运行程序,且当所述第二时间段和所述第一时间段的差小于所述预设值,将所述第二时间段作为开机时间。
10.一种开机时间的获取装置,其特征在于,包括:
获取模块,用于获取第一时间段和第二时间段,其中所述第一时间段中开机启动程序对应的进程都被创建,所述第二时间段中预设时间内中央处理器CPU使用率均低于预设阀值;
判断处理模块,用于判断用户在所述第二时间段内是否运行程序,如果是,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间;
其中,所述判断处理模块包括:
第一判断子模块,用于判断所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间是否有新进程被创建。
11.根据权利要求10所述的装置,其特征在于,所述第一判断子模块包括:
遍历单元,用于遍历所述第二时间段内的所有进程;
第一判断单元,用于判断所述所有进程中是否存在所述开机启动程序对应的进程都被创建的时刻之后的新进程。
12.根据权利要求11所述的装置,其特征在于,所述第一判断单元包括:
第一获取子单元,用于获取所述所有进程中所述开机启动程序对应的进程都被创建的时刻之后的新进程;
第一判断子单元,用于判断所述新进程的父进程身份标识PID是否是资源管理器进程或者图标管理软件进程。
13.根据权利要求12所述的装置,其特征在于,所述第一判断子模块包括:
第一创建单元,用于在所述开机启动程序对应的进程都被创建的时刻,创建第一进程快照;
第二创建单元,用于在所述CPU使用率低于预设阀值的时刻,创建第二进程快照;
第二判断单元,用于判断所述第二进程快照中是否存在除所述第一进程快照中进程之外的新进程。
14.根据权利要求13所述的装置,其特征在于,所述第二判断单元包括:
第二获取子单元,用于获取所述第二进程快照中除所述第一进程快照中进程之外的新进程;
第二判断子单元,用于判断所述新进程的父PID是否是资源管理器进程或者图标管理软 件进程。
15.根据权利要求10所述的装置,其特征在于,所述判断处理模块包括:
第一获取子模块,用于获取所述第二时间段内所有进程的父PID;
第二判断子模块,用于判断所述父PID是否是资源管理器进程或者图标管理软件进程。
16.根据权利要求10所述的装置,其特征在于,所述判断处理模块包括:
第二获取子模块,用于获取用户点击鼠标的时间;
第三判断子模块,用于判断所述用户点击鼠标的时间是否在所述开机启动程序对应的进程都被创建的时刻和所述CPU使用率低于预设阀值的时刻之间。
17.根据权利要求10-16任一项所述的装置,其特征在于,进一步包括:
判断模块,用于在所述根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间之前,判断所述第二时间段和所述第一时间段的差是否大于预设值;
相应的,所述判断处理模块包括:
获取子模块,用于如果所述第二时间段和所述第一时间段的差大于所述预设值,根据所述第一时间段、所述第二时间段和预设误差因子获取开机时间;
其中,所述获取子模块包括:
误差时间生成单元,用于将所述第二时间段和所述第一时间段的差与预设误差因子相乘,生成估算误差时间;
开机时间生成单元,用于将所述第一时间段和所述估算误差时间相加,生成开机时间。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第一生成模块,用于如果用户在所述第二时间段内没有运行程序,将所述第二时间段作为开机时间;
或者,第二生成模块,用于如果用户在所述第二时间段内运行程序,且当所述第二时间段和所述第一时间段的差小于所述预设值,将所述第二时间段作为开机时间。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210040970 CN102646066B (zh) | 2012-02-22 | 2012-02-22 | 一种开机时间的获取方法及装置 |
PCT/CN2012/087636 WO2013123815A1 (zh) | 2012-02-22 | 2012-12-27 | 一种开机时间的获取方法及装置 |
BR112013033103A BR112013033103A2 (pt) | 2012-02-22 | 2012-12-27 | método e dispositivo para a obtenção de tempo de início |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210040970 CN102646066B (zh) | 2012-02-22 | 2012-02-22 | 一种开机时间的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102646066A CN102646066A (zh) | 2012-08-22 |
CN102646066B true CN102646066B (zh) | 2013-12-18 |
Family
ID=46658894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201210040970 Active CN102646066B (zh) | 2012-02-22 | 2012-02-22 | 一种开机时间的获取方法及装置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN102646066B (zh) |
BR (1) | BR112013033103A2 (zh) |
WO (1) | WO2013123815A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646066B (zh) * | 2012-02-22 | 2013-12-18 | 腾讯科技(深圳)有限公司 | 一种开机时间的获取方法及装置 |
CN105468480B (zh) * | 2014-08-13 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 一种开机启动管理方法和装置 |
CN104199693B (zh) * | 2014-08-25 | 2017-12-19 | 北京金山安全软件有限公司 | 一种获取开机时间的方法、装置及终端 |
CN104199692B (zh) * | 2014-08-25 | 2017-08-04 | 北京金山安全软件有限公司 | 一种获取应用程序的启动时间的方法、装置及终端 |
CN104298530B (zh) * | 2014-10-13 | 2017-06-16 | 苏州佳世达电通有限公司 | 量测可携式电子装置开机时间长度的方法及资料处理系统 |
CN106569931B (zh) * | 2016-11-17 | 2019-05-21 | 北京小米移动软件有限公司 | 预计启动时长提醒的方法及装置 |
CN107688533B (zh) * | 2017-07-25 | 2020-12-29 | 深圳壹账通智能科技有限公司 | 应用程序测试方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178688A (zh) * | 2007-11-29 | 2008-05-14 | 中兴通讯股份有限公司 | 系统任务的cpu占用率检测方法及系统 |
CN101873616A (zh) * | 2010-06-21 | 2010-10-27 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端自检的方法、系统及移动终端 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100375025C (zh) * | 2005-09-13 | 2008-03-12 | 联想(北京)有限公司 | 计算机系统启动方法 |
CN101727382B (zh) * | 2008-10-16 | 2015-09-30 | 纬创资通股份有限公司 | 存取开机时间的方法 |
CN102355531A (zh) * | 2011-09-28 | 2012-02-15 | 捷开通讯科技(上海)有限公司 | 一种显示移动终端开机时间的装置及方法 |
CN102646066B (zh) * | 2012-02-22 | 2013-12-18 | 腾讯科技(深圳)有限公司 | 一种开机时间的获取方法及装置 |
-
2012
- 2012-02-22 CN CN 201210040970 patent/CN102646066B/zh active Active
- 2012-12-27 WO PCT/CN2012/087636 patent/WO2013123815A1/zh active Application Filing
- 2012-12-27 BR BR112013033103A patent/BR112013033103A2/pt not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178688A (zh) * | 2007-11-29 | 2008-05-14 | 中兴通讯股份有限公司 | 系统任务的cpu占用率检测方法及系统 |
CN101873616A (zh) * | 2010-06-21 | 2010-10-27 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端自检的方法、系统及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2013123815A1 (zh) | 2013-08-29 |
BR112013033103A2 (pt) | 2017-01-24 |
CN102646066A (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102646066B (zh) | 一种开机时间的获取方法及装置 | |
US20230254359A1 (en) | Method And System For Real-Time Modeling Of Communication, Virtualization And Transaction Execution Related Topological Aspects Of Monitored Software Applications And Hardware Entities | |
US8694574B2 (en) | Optimized settings in a configuration database with boundaries | |
US8656134B2 (en) | Optimized memory configuration deployed on executing code | |
US9003239B2 (en) | Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues | |
US10296362B2 (en) | Execution of a script based on properties of a virtual device associated with a virtual machine | |
KR102017756B1 (ko) | 이상행위 탐지 장치 및 방법 | |
TWI514283B (zh) | 擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備 | |
WO2014074170A1 (en) | Optimized memory configuration deployed prior to execution | |
CN104536776B (zh) | 一种在宿主端插件运行环境中运行插件应用的方法与装置 | |
CN101488173B (zh) | 支持零宕机的可信虚拟域启动文件完整性度量的方法 | |
CN103973515A (zh) | 一种网卡稳定性测试方法 | |
CN105589697A (zh) | 一种云平台的升级方法及装置 | |
US9912522B2 (en) | Automatic task tracking | |
Lee et al. | EnTrack: a system facility for analyzing energy consumption of Android system services | |
CN105302611A (zh) | 一种Linux下的启动计算机系统的方法及系统 | |
CN103440146A (zh) | 一种基于云存储的更新bios的方法 | |
US20170031740A1 (en) | Naming of nodes in net framework | |
US11635948B2 (en) | Systems and methods for mapping software applications interdependencies | |
US9292401B2 (en) | Systems and methods for determining desktop readiness using interactive measures | |
CN110928787B (zh) | 自动化测试脚本录制回放方法、装置、设备和存储介质 | |
EP3018608A1 (en) | Method and system for detecting execution of a malicious code in a web-based operating system | |
CN103092710A (zh) | 云计算操作系统中一种高可用虚拟机运行方法 | |
US9483297B2 (en) | Intelligent detection of inconsistent advanced configuration and power interface (ACPI) table instances in virtualized systems | |
CN110618884A (zh) | 故障监控方法、虚拟化的网络功能模块管理器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |