CN103577312A - 一种软件的时间性能的检测方法及装置 - Google Patents
一种软件的时间性能的检测方法及装置 Download PDFInfo
- Publication number
- CN103577312A CN103577312A CN201210262882.XA CN201210262882A CN103577312A CN 103577312 A CN103577312 A CN 103577312A CN 201210262882 A CN201210262882 A CN 201210262882A CN 103577312 A CN103577312 A CN 103577312A
- Authority
- CN
- China
- Prior art keywords
- detected object
- worker thread
- detection data
- child node
- temporal information
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种软件的时间性能的检测方法,可以进行实时的检测,快速获得软件执行时的时间信息。所述的方法包括:在待测软件中预置检测对象,获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;按工作线程分别分析检测对象的时间信息;生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
Description
技术领域
本申请涉及测试技术,特别是涉及一种软件的时间性能的检测方法及装置。
背景技术
随着计算机的发展和普及,越来越多的人使用计算机,计算机中包含多种软件为用户提供相应的服务。为了给用户提供更好的服务,需要对软件的执行时间进行检测,即检测软件的时间性能,其中,检测项目包括软件的启动时间、登录时间和窗口打开时间等。
若检测到软件的执行时间出现异常,例如,软件的登录时间过长,则需要确定是哪个环节的问题,导致软件的执行过程中出现了异常。通常针对上述情况的解决办法是,在软件的执行过程中对若干关键点进行标记,然后再人工的查看软件的输出日志。其中,输出日志是软件在执行时产生的事件记录,每一行日志都记载着日期、时间、使用者(即工作线程)及动作等相关操作的数据信息。
但是,输出日志中的数据信息非常的零散,需要对其进行统计、分析才能整合出关键点的数据信息(例如,各个关键点所在的工作线程或一个工作线程中两个关键点的执行时间等信息),而后才能进一步确定异常位置。这就导致了检测过程非常的耗费时间,检测效率非常低。
因此,本领域技术人员迫切解决的一个技术问题是,提出一种针对软件时间性能的检测方法,可以进行实时的检测,快速获得软件执行时的时间信息。
发明内容
本申请提供一种软件的时间性能的检测方法,可以进行实时的检测,快速获得软件执行时的时间信息以便快速的定位软件执行过程中的异常位置。
为了解决上述问题,本申请公开了一种软件的时间性能的检测方法,包括:
在待测软件中预置检测对象;
获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;
按工作线程分别分析检测对象的时间信息;
生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
相应的,本申请还公开了一种针对时间性能的检测装置,包括:
预置模块,用于在待测软件中预置检测对象;
采集模块,用于获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;
分析模块,用于按线程分别分析检测对象的时间信息;
输出模块,用于生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
与现有技术相比,本申请包括以下优点:
首先,本申请无需对零散的日志进行分析来查找异常位置,而是通过在待测软件中预置检测对象,然后在软件运行中获取检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息,并按工作线程分别分析检测对象的时间信息,本申请在获取检测数据后即进行分析,从而可以做到对待测软件进行实时检测。并且通过分析后,可以获取待测软件执行时的时间信息,进而生成包含工作线程及该工作线程中检测对象的时间信息的分析报告并输出。通过所述分析报告可以快速的查看所述检测软件的时间性能,进而快速的定位异常位置。
其次,本申请针对每一个工作线程建立一个查找树,将所述工作线程作为查找树的根节点,将检测对象作为查找树的子节点,通过检测数据中还包括起始点标识和结束点标识,可以确定所述检测对象是查找树中的哪一级子节点,从而可以通过查找树确定检测对象的执行顺序,在后续输出分析报告时可以快速的了解到待测软件中检测对象的执行顺序。
再次,本申请中还可以对监控起始点的采集时间和监控结束点的采集时间进行分析,得到以下至少一项分析结果:检测对象的执行时间、检测对象的执行时间占比和检测对象在工作线程中的执行顺序。从而使后续输出的分析报告中可以清晰地显示待测软件中工作线程和检测对象的时间性能。
附图说明
图1是本申请实施例所述一种软件的时间性能的检测方法流程图;
图2是本申请实施例所述一种软件的时间性能的检测方法中查找树示意图;
图3是本申请优选实施例所述一种软件的时间性能的检测方法中检测数据分析方法流程图;
图4是本申请优选实施例所述一种软件的时间性能的检测方法中子节点查找流程图;
图5是本申请实施例所述检测数据存入查找树的示意图;
图6是本申请优选实施例所述一种软件的时间性能的检测方法中检测数据分析方法示意图;
图7是本申请实施例所述一种软件的时间性能的检测装置结构图;
图8是本申请优选实施例所述一种软件的时间性能的检测装置中分析模块的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
现有技术在软件的执行过程中对若干关键点进行标记,然后再人工的查看软件的输出日志。但是,输出日志中的数据信息非常的零散,需要对其进行统计、分析才能整合出关键点的数据信息。这就导致了检测过程非常的耗费时间,检测效率非常低。
本申请提供了一种软件的时间性能的检测方法,可以进行实时的检测,快速获得软件执行时的时间信息,便于快速的定位软件执行过程中的异常位置。
参照图1,给出了本申请实施例所述一种软件的时间性能的检测方法流程图。
步骤101,检测待测软件中预置检测对象;
待测软件的时间性能可以通过一些检测对象的时间信息进行衡量,其中,所述检测对象可以是待测软件的某一功能模块,例如登录模块,或者是待测软件中的某个函数等。
因此本申请可以预先在待测软件中设置检测对象,如在待测软件中的某个函数中设置一些监控点。
步骤102,获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;
在待测软件运行时,可以通过采集接口对待测软件的各个工作线程进行检测,若检测到所述检测对象,则可以获取所述检测对象的检测数据。然后将所述检测数据加入到用于暂存检测数据的处理队列中。然后可以通知处理线程(例如采用SetEvent方法),所述处理队列中加入了检测数据,该处理线程由该处理队列调用,为相对所述工作线程独立的线程,并不影响所述工作线程的作业。
其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息。所述时间信息可以包括检测对象开始执行的时间及结束的时间,或检测对象的执行时间。
步骤103,按工作线程分别分析检测对象的时间信息;
处理线程等待处理队列中加入检测数据的事件,例如采用WaitForObject方法。在获知处理队列中加入了检测数据后,可以获取队列锁,并从处理队列中获取所述检测数据。
其中,处理线程将所述检测数据按照所在的工作线程来进行存储,因此获取到的检测数据后,可以查找所述检测数据中所述检测对象所在的工作线程,然后将所述检测数据存储到所述工作线程所在的存储位置中。然后获取所述工作线程中检测对象的时间信息,通过所述时间信息分析对待测软件的时间性能进行分析,例如,待测软件中检测对象的执行时间,待测软件中检测对象的执行顺序等。
步骤104,生成包含所述工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
上述按工作线程分别分析检测对象的时间信息后,可以获得软件执行时的时间信息,然后生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,然后输出所述分析报告,进而查看待测软件的时间性能,例如,某个待测软件中检测对象执行时间过长,则所述检测对象可能存在异常,从而快速的定位到异常位置。
综上所述,本申请无需对零散的日志进行分析来查找异常位置,而是通过在待测软件中预置检测对象,然后在软件运行中获取检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息,并按工作线程分别分析检测对象的时间信息,本申请在获取检测数据后即进行分析,从而可以做到对待测软件进行实时检测。并且通过分析后,可以获取待测软件执行时的时间信息,进而生成包含工作线程及该工作线程中检测对象的时间信息的分析报告并输出。通过所述分析报告可以快速的查看所述检测软件的时间性能,进而快速的定位异常位置。
优选的,所述预置检测对象的步骤包括:
针对每个检测对象,预置监控点进行检测,其中所述监控点包括监控起始点和监控结束点,将所述监控起始点作为检测对象的起始标识,将所述监控结束点作为检测对象的结束标识。
本申请中预置了检测对象,并且在每个检测对象中预置了监控点,若检测到所述监控点则表示所述检测对象在执行业务。
所述监控点中包括监控起始点和监控结束点,其中,将所述监控起始点作为检测对象的起始标识,将所述监控结束点作为检测对象的结束标识。即检测到监控起始点时说明所述检测对象开始执行业务,检测到所述监控结束点时说明所述检测对象的业务执行完毕。
其中,检测对象的设置方法包括对检测对象进行标记,例如采用以下至少一种函数来标记检测对象:
1)AutoPath(),用于函数内标记;2)AutoPath2(id),用于作用域内标记;3)PATH(id,state),用于跨函数作用域标记,可以成对出现。
例如具体实施中若以函数作为检测对象,则可以采用AutoPath()对函数进行标记,即在函数体中添加AutoPath(),则所述AutoPath()可以自动标记函数的监控起始点和监控结束点,从而实现对所述函数的标记。又如,在待测软件运行中函数A会调用函数B,函数B又会调用函数C,则上述这种情况可以采用PATH(id,state)进行标记,他可以在自动对函数A、B和C的监控起始点和监控结束点进行标记。
通过上述标记方法,就可以在检测到监控点时获取到该监控点的时间信息,如将检测到的时间作为采集时间。
优选的,所述检测对象包括软件的任务模块和/或所述任务模块调用的函数。
本申请中所述检测对象可以是待测软件的任务模块,如启动模块,窗口关闭模块等。也可以是所述任务模块调用的函数,如上述采用AutoPath()标记的函数。当然还可能既包括待测软件的任务模块,又包括述任务模块调用的函数,本申请对此不做限定。
参照图2,给出了本申请实施例所述一种软件的时间性能的检测方法中查找树示意图。
优选的,将每一个工作线程作为根节点分别建立一个查找树。
参照图3,给出了本申请优选实施例所述一种软件的时间性能的检测方法中检测数据分析方法流程图。
优选的,所述按工作线程分别分析检测对象的时间信息,包括:
步骤1031,将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中;
上述将每一个工作线程作为根节点分别建立一个查找树后,后续处理线程获取到检测对象的检测数据后,对所述检测对象进行分线程的分析。则可以先查找所述检测对象所在的工作线程,然后将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中。
步骤1032,针对所述检测对象,分析检测数据中所述检测对象的时间信息。
分工作线程存储检测对象的检测数据后,针对每个检测对象,可以分析所述检测对象的检测数据中,所述检测对象的时间信息,例如通过检测对象的起始点的采集时间和结束点的采集时间,可以获取所述检测对象的执行时间。
优选的,将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中,包括:
查找检测数据中检测对象所在的工作线程,和所述工作线程对应的查找树;将检测对象作为所述查找树的子节点,在所述子节点中存储所述检测数据。
本申请对检测数据分别根据其所在的工作线程进行存储,因此可以针对每一个工作线程建立一个查找树,然后将所述工作线程作为根节点,将检测对象作为查找树的子节点。例如,可以采用工作线程的线程标识(ID,identity)作为根节点。
处理线程从工作队列中获取检测数据后,可以在所述检测数据中查找检测对象所在的工作线程,然后查找所述工作线程对应的查找树中。将检测对象作为查找树的子节点,并在所述子节点中存储所述检测对象的检测数据。
同一个工作线程中的检测对象存在父子关系和兄弟关系。在对待测软件进行检测时,检测到的第一个检测对象的起始点标记时,将所述第一个检测对象作为查找树的第一个第1级子节点,即图2中的子节点1,然后获取第二个检测对象的起始点标记后,检测所述子节点1中是否存在结束点标识。
若不存在结束点标识,则说明所述第一个检测对象和所述第二个检测对象是父子关系,则将所述第二个检测对象作为子节点1下的第一个第2级子节点,即图2中的子节点11。
若存在结束点标识,则所述第一个检测对象已经执行结束,并说明所述第一个检测对象和所述第二个检测对象是兄弟关系,则将所述第二个检测对象作为第二个第1级子节点,即图2中的子节点2。
本申请在获取到检测对象时,可以由低层的子节点到高层子节点逐级查找,即在上述过程中,若获取到第三个检测对象,则要检测所述第二个检测对象中是否存在结束点标识。
在上例的基础上,若所述第二个检测对象为子节点11,则在检测所述子节点1中是否存在结束点标识。若所述第二个检测对象为子节点2,则不需要检测所述子节点1中是否存在结束点标识。
参照图4,给出了本申请优选实施例所述一种软件的时间性能的检测方法中子节点查找流程图。
若此时查找树包括n级子节点。
S1,当检测到所述检测数据中包含起始点标识时,检测所述查找树中的第n级子节点上的检测数据中是否存在结束点标识;
若否,即不存在结束点标识,则将所述检测数据对应的检测对象作为第n+1级子节点。
若是,即存在结束点标识,则将n-1返回执行S1,即检测所述查找树中的第n-1级子节点上的检测数据中是否存在结束点标识,然后依此类推,直到第1级子节点检测到结束点标识,则将所述检测对象作为第1级子节点。
其中,若在第x级子节点中没有检测到结束点标识,则所述检测数据对应的检测对象为x+1级子节点。
参照图5,给出了本申请实施例所述检测数据存入查找树的示意图。
图5中查找树包括3级子节点,第1级子节点上仅存在子节点x1,第2级子节点上存在子节点x11,第3级子节点上存在子节点x111~x11n,当检测到所述检测数据中包含起始点标识时,检测子节点x11n上的检测数据中是否存在结束点标识。图5中虚线标识的子节点x2、x12、x11(n+1)和x11n1是所述检测数据可能成为的子节点,具体过程如下:
若子节点x11n上的检测数据中不存在结束点标识,则将所述检测数据对应的检测对象作为第4级子节点,即子节点x11n1。
若子节点x11n上的检测数据中存在结束点标识,则将n-1,然后检测第2即子节点x11上的检测数据中是否存在结束点标识。
若子节点x11上的检测数据中不存在结束点标识,则将所述检测数据对应的检测对象作为第3级子节点,即子节点x11(n+1)。
若子节点x11上的检测数据中存在结束点标识,将x(n-1)-1,然后检测第1即子节点x1上的检测数据中是否存在结束点标识。
若子节点x1上的检测数据中不存在结束点标识,则将所述检测数据对应的检测对象作为第2级子节点,即子节点x12。
若子节点x11上的检测数据中存在结束点标识,则将所述检测数据对应的检测对象作为第1级子节点,即子节点x2。
所述检测数据中还包括工作线程的线程标识,检测对象的对象标识等。
因此,若所述检测数据中包括结束点标识,则查找所述检测数据中检测对象的对象标识,然后查找所述检测对象在查找树的所在子节点,然后在所述子节点中存储所述检测数据。
参照图6,给出了本申请优选实施例所述一种软件的时间性能的检测方法中检测数据分析方法示意图。
综合上述过程,从获取检测数据开始,直到将检测数据存储到查找树中为止,主要包括以下步骤:
步骤601,获取检测队列中的检测数据;
步骤602,查找检测数据中检测对象所在的工作线程,和所述工作线程对应的查找树;
步骤603,检测所述检测数据;
若所述检测数据中包含起始点标识,则执行步骤605;若所述检测数据中包含结束点标识,则执行步骤604。
步骤604,查找所述检测对象在查找树中所在的子节点;
若所述检测数据中包含结束点标识,则查找所述检测对象在查找树中所在的子节点,然后执行步骤607。
步骤605,检测所述查找树中的第n级子节点上的检测数据中是否存在结束点标识;
若所述检测数据中包含起始点标识,则检测所述查找树中的第n级子节点上的检测数据中是否存在结束点标识。
若否,即所述查找树中的第n级子节点上的检测数据中不存在结束点标识,则执行步骤607;若是,即所述查找树中的第n级子节点上的检测数据中存在结束点标识,则将n-1返回执行步骤605
步骤606,所述检测数据对应的检测对象作为第n+1级子节点;
步骤607,在所述子节点中存储所述检测数据。
通过上述的步骤,在获取检测数据后,就可以根据所述检测数据中的起始点标识或结束点标识,查找到所述检测数据对应检测对象在查找树中所在的子节点,并在所述子节点中存储所述检测数据。就实现了将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中,后续可以针对每个检测对象,分析检测数据中所述检测对象的时间信息。
优选的,所述检测对象的时间信息包括:所述检测对象的监控起始点的采集时间和监控结束点的采集时间,则所述针对所述检测对象,分析检测数据中所述检测对象的时间信息,包括:
针对所述检测对象,获取所述时间信息中监控起始点的采集时间和监控结束点的采集时间进行分析,分析结果包括以下至少一项:
检测对象的执行时间、检测对象的执行时间占比和检测对象在工作线程中的执行顺序。
本申请中针对每一个检测对象建立了监控起始点和监控结束点,并在检测到监控起始点和监控结束点时分别获取检测数据。则针对每一个检测对象,可以获取监控起始点的采集时间和监控结束点的采集时间。
通过监控起始点的采集时间和监控结束点的采集时间,可以对待测软件的时间性能进行分析。例如,监控结束点的采集时间减去监控起始点的采集时间,可以获取到检测对象的执行时间。
通过工作线程中各个检测对象的执行时间,可以获取检测对象的执行时间占比,其中包括:检测对象的执行时间在所在工作线程中所有检测对象的执行时间中的占比,和检测对象的执行时间在待测软件中所有检测对象的执行时间中的占比。
本申请通过查找树存储各个工作线程中的检测对象,因此可以通过所述查找树快速的获取检测对象的执行顺序。
因此,生成分析报告后,可以按照工作线程中各个监控路径的执行顺序输出分析报告,也可以按照工作线程中各个监控路径的执行时间输出分析报告。
用户在查看分析报告时,可以快速的查看到各个检测对象的执行顺序,并且可以查看工作线程中各个检测对象的执行时间,从而可以快速的确定哪个检测对象执行时,比较耗费时间,确定出异常位置。
综上所述,本申请针对每一个工作线程建立一个查找树,将所述工作线程作为查找树的根节点,将检测对象作为查找树的子节点,通过检测数据中还包括起始点标识和结束点标识,可以确定所述检测对象是查找树中的哪一级子节点,从而可以通过查找树确定检测对象的执行顺序,在后续输出分析报告时可以快速的了解到待测软件中检测对象的执行顺序。
其次,本申请中还可以根据对监控起始点的采集时间和监控结束点的采集时间进行分析,得到以下至少一项分析结果:检测对象的执行时间、检测对象的执行时间占比和检测对象在工作线程中的执行顺序。从而使后续输出的分析报告中可以清晰地显示待测软件中工作线程和检测对象的时间性能。
参照图7,给出了本申请实施例所述一种软件的时间性能的检测装置结构图。
相应的,本申请还提供了一种针对时间性能的检测装置,包括预置模块71、采集模块72、分析模块73和输出模块74,其中:
预置模块71,用于在待测软件中预置检测对象;
采集模块72,用于获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;
分析模块73,用于按线程分别分析检测对象的时间信息;
输出模块74,用于生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
优选的,所述预置模块71,还用于针对每个检测对象,预置监控点进行检测,其中所述监控点包括监控起始点和监控结束点,将所述监控起始点作为检测对象的起始标志,将所述监控结束点作为检测对象的结束标识。
优选的,所述检测对象包括待测软件的任务模块和/或所述任务模块调用的函数。
参照图8,给出了本申请优选实施例所述一种软件的时间性能的检测装置中分析模块的结构图。
优选的,所述分析模块73,包括:
查找树建立子模块731,用于针对每一个工作线程,将所述工作线程作为根节点建立一个查找树;
存储子模块732,用于将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中;
分析子模块733,用于针对所述检测对象,分析检测数据中所述检测对象的时间信息。
优选的,所述存储子模块732,包括:
查找单元7321,用于查找检测数据中检测对象所在的工作线程,和所述工作线程对应的查找树;
存储单元7322,用于将检测对象作为所述查找树的子节点,在所述子节点中存储所述检测数据。
优选的,查找树包括n级子节点,所述检测数据中还包括起始点标识和结束点标识;
存储单元7322,包括:
标识检测子单元,用于当检测到所述检测数据中包含起始点标识时,检测所述查找树中的第n级子节点上的检测数据中是否存在结束点标识;
子节点子单元,用于若存在结束点标识,则将所述检测数据对应的检测对象作为第n级子节点;
若存在,则将n-1返回标识检测子单元,直到第1级子节点检测到结束点标识,则将所述检测对象作为第1级子节点。
优选的,所述检测对象的时间信息包括:所述检测对象的监控起始点的采集时间和监控结束点的采集时间,
所述分析子模块733,用于针对所述检测对象,获取所述时间信息中监控起始点的采集时间和监控结束点的采集时间进行分析,分析结果包括以下至少一项:检测对象的执行时间、检测对象的执行时间占比和检测对象在工作线程中的执行顺序。
输出模块74,用于按照工作线程中各个监控路径的执行顺序输出分析报告,或,按照工作线程中各个监控路径的执行时间输出分析报告。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种软件的时间性能的检测方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种软件的时间性能的检测方法,其特征在于,包括:
在待测软件中预置检测对象;
获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;
按工作线程分别分析检测对象的时间信息;
生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
2.根据权利要求1所述的方法,其特征在于,所述预置检测对象的步骤包括:针对每个检测对象,预置监控点进行检测,其中所述监控点包括监控起始点和监控结束点,将所述监控起始点作为检测对象的起始标志,将所述监控结束点作为检测对象的结束标识。
3.根据权利要求1所述的方法,其特征在于,所述检测对象包括待测软件的任务模块和/或所述任务模块调用的函数。
4.根据权利要求2所述的方法,其特征在于,还包括:
将每一个工作线程作为根节点分别建立一个查找树。
5.根据权利要求4所述的方法,其特征在于,所述按工作线程分别分析检测对象的时间信息,包括:
将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中;
针对所述检测对象,分析检测数据中所述检测对象的时间信息。
6.根据权利要求5所述的方法,其特征在于,将所述检测对象的检测数据按照所在的工作线程分别存储在查找树中,包括:
查找检测数据中检测对象所在的工作线程,和所述工作线程对应的查找树;
将检测对象作为所述查找树的子节点,在所述子节点中存储所述检测数据。
7.根据权利要求6所述的方法,其特征在于,查找树包括n级子节点,所述检测数据中还包括起始点标识和结束点标识;
所述将检测对象作为所述查找树的子节点,包括:
S1,当检测到所述检测数据中包含起始点标识时,检测所述查找树中的第n级子节点上的检测数据中是否存在结束点标识;
若不存在,则将所述检测数据对应的检测对象作为第n+1级子节点;
若存在,则将n-1返回执行S1,直到第1级子节点检测到结束点标识,则将所述检测对象作为第1级子节点。
8.根据权利要求5所述的方法,其特征在于,所述检测对象的时间信息包括:所述检测对象的监控起始点的采集时间和监控结束点的采集时间,
所述针对所述检测对象,分析检测数据中所述检测对象的时间信息,包括:
针对所述检测对象,获取所述时间信息中监控起始点的采集时间和监控结束点的采集时间进行分析,分析结果包括以下至少一项:
检测对象的执行时间、检测对象的执行时间占比和检测对象在线程中的执行顺序。
9.根据权利要求8所述的方法,其特征在于,所述输出该分析报告,包括:
按照工作线程中各个检测对象的执行顺序输出该分析报告;
或,按照工作线程中各个检测对象的执行时间输出该分析报告。
10.一种软件的时间性能的检测装置,其特征在于,包括:
预置模块,用于在待测软件中预置检测对象;
采集模块,用于获取所述检测对象的检测数据,其中,所述检测数据包括检测对象所在的工作线程和检测对象的时间信息;
分析模块,用于按线程分别分析检测对象的时间信息;
输出模块,用于生成包含工作线程及该工作线程中检测对象的时间信息的分析报告,并输出该分析报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210262882.XA CN103577312B (zh) | 2012-07-26 | 2012-07-26 | 一种软件的时间性能的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210262882.XA CN103577312B (zh) | 2012-07-26 | 2012-07-26 | 一种软件的时间性能的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577312A true CN103577312A (zh) | 2014-02-12 |
CN103577312B CN103577312B (zh) | 2016-08-10 |
Family
ID=50049139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210262882.XA Active CN103577312B (zh) | 2012-07-26 | 2012-07-26 | 一种软件的时间性能的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577312B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570554B (zh) * | 2015-11-05 | 2017-02-11 | 財團法人資訊工業策進會 | 軟體測試裝置、軟體測試方法及其電腦程式產品 |
CN108763046A (zh) * | 2018-06-01 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 线程运行监控方法、装置、计算机设备和存储介质 |
CN109491858A (zh) * | 2018-10-15 | 2019-03-19 | 山东中创软件商用中间件股份有限公司 | 一种应用线程检测方法、瓶颈分析方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046614A1 (en) * | 2001-08-31 | 2003-03-06 | Brokish Charles W. | System and method for using embedded real-time analysis components |
CN1570875A (zh) * | 2003-07-14 | 2005-01-26 | 中兴通讯股份有限公司 | 一种在监控系统中实现智能代理的装置及方法 |
CN101887392A (zh) * | 2010-07-06 | 2010-11-17 | 中兴通讯股份有限公司 | 一种软件系统运行稳定性测试方法及装置 |
CN102591770A (zh) * | 2011-12-27 | 2012-07-18 | 奇智软件(北京)有限公司 | 一种目标应用启动时间检测方法和装置 |
-
2012
- 2012-07-26 CN CN201210262882.XA patent/CN103577312B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046614A1 (en) * | 2001-08-31 | 2003-03-06 | Brokish Charles W. | System and method for using embedded real-time analysis components |
CN1570875A (zh) * | 2003-07-14 | 2005-01-26 | 中兴通讯股份有限公司 | 一种在监控系统中实现智能代理的装置及方法 |
CN101887392A (zh) * | 2010-07-06 | 2010-11-17 | 中兴通讯股份有限公司 | 一种软件系统运行稳定性测试方法及装置 |
CN102591770A (zh) * | 2011-12-27 | 2012-07-18 | 奇智软件(北京)有限公司 | 一种目标应用启动时间检测方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570554B (zh) * | 2015-11-05 | 2017-02-11 | 財團法人資訊工業策進會 | 軟體測試裝置、軟體測試方法及其電腦程式產品 |
CN108763046A (zh) * | 2018-06-01 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 线程运行监控方法、装置、计算机设备和存储介质 |
CN108763046B (zh) * | 2018-06-01 | 2024-04-05 | 中国平安人寿保险股份有限公司 | 线程运行监控方法、装置、计算机设备和存储介质 |
CN109491858A (zh) * | 2018-10-15 | 2019-03-19 | 山东中创软件商用中间件股份有限公司 | 一种应用线程检测方法、瓶颈分析方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103577312B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106656536B (zh) | 一种用于处理服务调用信息的方法与设备 | |
CN103155428B (zh) | 便携式终端中用于自适应手势识别的装置和方法 | |
US20120143875A1 (en) | Method and system for discovering dynamic relations among entities | |
CN102143008A (zh) | 用于数据中心的诊断故障事件的方法及装置 | |
CN105426234B (zh) | 数据库死锁检测方法及装置 | |
CN111240876B (zh) | 微服务的故障定位方法、装置、存储介质及终端 | |
CN102226890A (zh) | 一种主机批量作业数据监控方法及装置 | |
CN104699735A (zh) | 企业级数据中心的数据处理方法及装置 | |
WO2022252512A1 (zh) | 根因分析方法、装置、电子设备、介质和程序 | |
CN102681938A (zh) | 一种内存泄漏检测方法及装置 | |
CN102306119A (zh) | 捕获全局异常的系统及方法 | |
CN105184156A (zh) | 一种安全威胁管理方法和系统 | |
CN115357418A (zh) | 微服务故障检测方法、装置、存储介质及计算机设备 | |
CN103577312A (zh) | 一种软件的时间性能的检测方法及装置 | |
CN114430331A (zh) | 一种基于知识图谱的网络安全态势感知方法及系统 | |
CN115801372A (zh) | 一种链路追踪方法及装置 | |
CN104182348A (zh) | 软件测试方法及装置 | |
CN106201859A (zh) | 一种回归测试方法及系统 | |
CN104866425A (zh) | 一种数据库压力测试的方法 | |
CN105116869B (zh) | 大型养路机械电气系统故障实时监测诊断方法 | |
CN110675028A (zh) | 基于区块链的食品安全监管方法、装置、设备及系统 | |
CN103823743A (zh) | 软件系统的监控方法和设备 | |
Lu et al. | Multi-stage monitoring of abnormal situation based on complex event processing | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
CN107682173B (zh) | 基于交易模型的自动故障定位方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |