掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及数据检测技术领域,特别是一种应用程序的性能检测方法、系统、存储介质及计算设备。

背景技术

在应用程序开发过程中,随着应用程序所涉及的算法、工程部门的业务越来越多,很多开发人员身兼数职,从而很容易在编码上出现纰漏,甚至是可能出现n^2级以上的算法复杂度。对于现有的响应耗时不在关注范围内的情况,必然会造成用户使用应用程序不畅快,用户体验差的问题。而在排查问题的过程中,不断上线日志重试,可能会无法成功的找到问题,造成人工效率低下的问题。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用程序的性能检测方法、系统、存储介质及计算设备,能够在待检测应用程序启动时同步启动代理程序,无需再次向应用程序添加启动参数来启动代理程序,避免了由于添加启动参数的错误导致应用程序启动失败或执行失败。将应用程序性能参数的检测具体到各执行方法,可更细粒度的检测得到应用程序的性能。

根据本发明实施例的一方面,提供了一种应用程序的性能检测方法,包括:

响应于待检测应用程序的启动操作,同步启动预先以参数形式配置于所述应用程序中的代理程序;

利用启动后的代理程序将被代理内容以参数形式传入所述应用程序的应用进程中;

扫描所述应用程序的应用进程中的被代理内容,基于扫描结果检测所述应用程序运行所述被代理内容相关进程所调用的各执行方法的性能参数。

可选地,所述被代理内容包括被代理路径、项目名称、关键代码片段中至少一项。

可选地,扫描所述应用程序的应用进程中的被代理内容之前,还包括:

将所述被代理内容设置为被扫描内容,在被扫描内容对应的各个被扫描包类的执行方法中分别注入用于扫描的扫描程序;

设置需排除的扫描内容,其中,所述需排除的扫描内容包含重复性内容中非首次出现的内容或手动设置的需排除的扫描内容。

可选地,扫描所述应用程序的应用进程中的被代理内容,基于扫描结果检测所述应用程序运行所述被代理内容相关进程所调用的各执行方法的性能参数,包括:

通过注入被扫描包类的执行方法中的扫描程序扫描所述应用程序的应用进程中的被代理内容;

基于扫描结果分别统计所述应用程序运行所述被代理内容相关进程所调用的各执行方法的性能参数并记录。

可选地,所述执行方法的性能参数,包括:

执行方法的消耗时间、执行方法的方法名、执行方法的父方法名、执行方法所属实体类、传入参数中至少一项。

可选地,若所述执行方法的性能参数包括执行方法的耗时时间,基于扫描结果检测所述应用程序运行所述被代理内容相关进程所调用的各执行方法的性能参数,包括:

检测所述应用程序运行所述被代理内容相关进程中所调用的各执行方法开始执行的时间点及执行完毕的时间点;

计算所述执行完毕的时间点与所述开始执行的时间点的时间差值,将所述时间差值作为相应执行方法的消耗时间。

可选地,基于扫描结果检测所述应用程序运行所述被代理内容相关进程所调用的各执行方法的性能参数之后,还包括:

将各执行方法的性能参数缓存至指定代码队列;

将所述指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中。

可选地,将所述指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中,包括:

将所述指定代码队列中缓存的性能参数,按照批量方式以指定时间间隔定时存储至预设存储对象中;或

将所述指定代码队列中缓存的性能参数依次以指定时间间隔定时存储至预设存储对象中。

可选地,将所述指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中之后,还包括:

将存储于所述预设存储对象中的各执行方法的性能参数以链路形式进行可视化展示;

其中,所述执行方法的性能参数作为链路的节点信息。

根据本发明实施例的另一方面,还提供了一种应用程序的性能检测系统,包括:

启动模块,适于响应于待检测应用程序的启动操作,同步启动预先以参数形式配置于所述应用程序中的代理程序;

代理模块,适于利用启动后的代理程序将被代理内容以参数形式传入所述应用程序的应用进程中;

检测模块,适于扫描所述应用程序的应用进程中的被代理内容,基于扫描结果检测所述应用程序运行所述被代理内容相关进程所调用的各执行方法的性能参数。

根据本发明实施例的再一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任意实施例的应用程序的性能检测方法。

根据本发明实施例的又一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任意实施例的应用程序的性能检测方法。

根据本发明实施例的另一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任意实施例所述的应用程序的性能检测方法。

根据本发明实施例的另一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任意实施例所述的应用程序的性能检测方法。

本发明实施例中,在启动待检测的应用程序时可同步启动预先以参数形式配置于应用程序中的代理程序,然后通过启动后的代理程序将被代理内容以参数形式传入应用程序的应用进程中,最后扫描应用程序的应用进程中的被代理内容,并基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数。由此,本发明实施例通过将代理程序预先以参数形式配置于应用程序中,从而可在待检测应用程序启动时同步启动代理程序,无需再次向应用程序添加启动参数来启动代理程序,避免了由于添加启动参数的错误所造成的应用程序启动失败或执行失败的问题。并且,本发明实施例可以检测被代理内容相关进程中各执行方法的性能参数,即应用程序性能参数的检测具体到了各执行方法,从而可以更细粒度的检测得到应用程序的性能。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了根据本发明一实施例的应用程序的性能检测方法的流程示意图;

图2示出了根据本发明一实施例的应用程序的性能检测过程示意图;

图3示出了根据本发明一实施例的应用程序的性能检测过程中展示的可视化界面示意图;

图4示出了根据本发明一实施例的应用程序中执行方法的性能参数对应的链路图;

图5示出了根据本发明一实施例的应用程序的性能检测系统的结构示意图;

图6示出了根据本发明另一实施例的应用程序的性能检测系统的结构示意图;

图7示出了根据本发明再一实施例的应用程序的性能检测系统的结构示意图;

图8示出了根据本发明又一实施例的应用程序的性能检测系统的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为解决上述技术问题,本发明实施例提供了一种应用程序的性能检测方法。图1示出了根据本发明一实施例的应用程序的性能检测方法的流程示意图。参见图1,应用程序的性能检测方法包括步骤S102至步骤S106。

步骤S102,响应于待检测应用程序的启动操作,同步启动预先以参数形式配置于应用程序中的代理程序。

本发明实施例中代理程序(即代理Agent)可以以插件形式设置于待检测的应用程序中。该实施例的代理Agent可应用于多个不同的待检测应用程序中。待检测的应用程序可以是web应用及微服务应用,该类应用程序可常驻于终端设备的内存中,通过接收外部触发请求(如http请求)来执行应用程序对应的代码,并返回执行后的数据,应用程序还可以是其他程序,本发明实施不作具体限定。

步骤S104,利用启动后的代理程序将被代理内容以参数形式传入应用程序的应用进程中。

步骤S106,扫描应用程序的应用进程中的被代理内容,基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数。

本发明实施例通过将代理程序预先以参数形式配置于应用程序中,从而可在待检测应用程序启动时同步启动代理程序,无需再次向应用程序添加启动参数来启动代理程序,避免了由于添加启动参数的错误所造成的应用程序启动失败或执行失败的问题。并且,本发明实施例可以检测被代理内容相关进程中各执行方法的性能参数,即应用程序性能参数的检测具体到了各执行方法,从而可以更细粒度的检测得到应用程序的性能。

在本发明一实施例中,上文步骤S104中的被代理内容可以包括被代理路径、项目名称、关键代码片段等等中的至少一项。并且,被代理内容可以进行预先指定,指定完成后可作为后续扫描的内容。被代理路径可以是一个类的路径,也可以是同一个包下的所有类的路径。本发明实施例若要实现细粒度的链路追踪,提前指定被代理路径可由应用程序所在系统自动优先加载。这里提前指定的被代理路径会以参数形式传入应用程序的应用进程。

项目名称可用于后续区分不同项目,例如可以用于在后续对性能参数进行存储或在后续对性能参数进行展示时区分不同项目。本发明实施例中,项目的进程至少可包含两个特征,分别为进程命名和地址命名,其中进程命名默认会以项目名命名,当然也可以使用自定义命名,地址命名可以依据应用程序所在计算机地址名称进行命名。例如,某个应用程序中“登录账户”进程,包含的进程特征信息有进程命名(如登录账户进程)和应用程序所在计算机地址名称(如IP地址172.17.9.17)。另外,由于java路径下均由全限定类名组成,而底层的类有多个,通常我们关注的代码都是开发人员编写的代码,因此可指定扫描哪些代码路径,即指定出关键代码片段。

由于被代理内容是预先进行指定的,因此在执行步骤S106扫描应用程序的应用进程中的被代理内容之前,本发明实施例还可以将指定的被代理内容设置为需要被扫描的内容,并且可以在被扫描内容对应的各个被扫描包类的执行方法中分别注入用于扫描的扫描程序。这里的扫描程序即可执行程序,通过注入于被扫描包类的执行方法的可执行程序能够扫描应用进程中的被代理内容,如扫描被代理路径。

在该实施例中,有些实体类是无关紧要的,或者属于重复性的循环内容,一方面该内容本身耗时很少,另一方面重复性提供的信息也没有太多价值,没有必要全部都监控耗时,因此,本发明实施例可以通过设置需排除扫描内容的方式将这些内容排除。该实施例中,需排除的扫描内容可以是重复性内容中非首次出现的内容,若对一个扫描内容扫描之后,后续继续重复性的循环出现同一内容,该同一内容便是需排除的扫描内容,此时可以无需进行重复扫描检测。当然,需排除的扫描内容还可以根据实际情况通过手动进行自主设置,如将无关紧要的内容手动设置为需排除的扫描内容。

在本发明一实施例中,在执行步骤S106扫描应用程序的应用进程中的被代理内容,基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数的过程中,可以通过之前已注入被扫描包类的执行方法中的扫描程序来扫描应用程序的应用进程中的被代理内容。然后基于扫描结果分别统计应用程序运行被代理内容相关进程所调用的各执行方法的性能参数并记录。该实施例中,执行方法的性能参数可以包括执行方法的消耗时间、执行方法的方法名、执行方法的父方法名、执行方法所属实体类、传入参数等等中至少一项。

本发明实施例的执行方法的消耗时间可以体现出各执行方法执行完毕所需要的时间。执行方法的方法名和执行方法的父方法名可以方便清楚的体现出各个执行方法之间的调用关系,如a执行方法调用b执行方法,则a执行方法为父执行方法,具有对应的父执行方法名。

传入参数可以用于做单元测试,以更加快捷地发现应用程序的性能问题。比如,传入参数为“1”时应用程序执行逻辑可能是正常的,但是当传入一个其他参数值(比如“2”)后,可能因为进程中的判断条件问题导致应用程序执行了其他代码,无法执行正常逻辑,因此通过传入参数可以在一定程度上更快地找到应用程序的问题。

在本发明实施例中,基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的消耗时间时,可以先检测应用程序运行被代理内容相关进程中所调用的各执行方法开始执行的时间点及执行完毕的时间点。然后计算执行完毕的时间点与开始执行的时间点的时间差值,从而将时间差值作为相应执行方法的消耗时间。

该实施例中,当扫描程序扫描到当前路径与被代理的路径一致时,可以将计算时间的代码分别插入类的每个执行方法的开头与结尾,从而检测当前执行方法开始执行的时间点及执行完毕的时间点,然后计算执行完毕的时间点与开始执行的时间点的时间差值,从而计算出当前执行方法运行的时间,即当前执行方法运行的消耗时间。通过计算得到的执行方法运行的消耗时间可以确定应用程序的性能是否较佳,通常应用程序的各执行方法的消耗时间越短,效率越高,性能也就越好。

在本发明一实施例中,在基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数之后,还可以对检测出的各执行方法的性能参数进行存储。

具体的,可以先将各执行方法的性能参数缓存至指定代码队列,然后将指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中。本发明实施例可通过对应用程序调用各执行方法产生的性能参数进行收集,从而将收集到的性能参数缓存至指定代码队列。

该实施例以指定时间间隔定时存储指的是,对指定代码队列中缓存的性能参数进行定时轮询存储。例如间隔1分钟轮询一次指定代码队列,若指定码队列中存在缓存的性能参数,则可以将缓存的性能参数存储至预设存储对象中。指定时间间隔的具体数值可以根据实际需求进行设置,本发明实施例不作具体限定。该实施例用于存储性能参数的预设存储对象可以包含本地文件、数据库、远程索引等,即可以采用多种存储方式周期性的定时存储指定代码队列中的数据。

本发明实施例通过将指定代码队列中缓存的性能参数进行定时存储,而非实时存储,可以有效避免性能参数存储过程影响应用程序的正常性能。

本发明实施例将指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中的方式可以包含两种。

第一种,将指定代码队列中缓存的性能参数,按照批量方式以指定时间间隔定时存储至预设存储对象中。例如,可以将指定代码队列中缓存的全部性能参数以一个批次、定时的存储至预设存储对象。也可以是将指定代码队列中缓存的全部性能参数分成其他数量的批次,如将全部性能参数分成2个批次进行定时存储。

第二种,将指定代码队列中缓存的性能参数依次以指定时间间隔定时存储至预设存储对象中。该方式中,无论指定代码队列中缓存的性能参数包含多少,都可以将指定代码队列中的性能参数依次存储至预设存储对象,即一次存储一项性能参数。当然,在依次将性能参数存储至预设存储对象的过程中,可以按照性能参数被检测出的顺序进行依次存储。

本发明实施例可以针对一个应用程序预先指定一组被代理内容,当应用程序的一组代理内容分别依次传入应用程序的进程并分别完成应用程序的性能检测后,可在进程中添加一个结束标识,从而可以开始下一个应用程序的性能检测过程。

例如,为应用程序A预先设置的一组被代理内容包含A1、A2和A3,在应用程序A和代理程序同步启动后,先将被代理内容A1传入应用程序A的应用进程中,从而检测得到相应的性能参数。然后重新启动应用程序A,将被代理内容A2传入应用程序A的应用进程中并检测得到相应的性能参数。进而再次重新启动应用程序A,将被代理内容A3传入应用程序A的应用进程中并检测得到相应的性能参数,此时针对应用程序A没有可传入的被代理内容,则在应用进程中添加一个结束标识。当检测到结束标识后可开始下一个应用程序(如应用程序B)的性能检测过程。通过对应用程序A的循环启动并依次传入多个代理内容,可以得到同一应用程序的多个性能参数数值,从而可以从中选择出最优的性能参数数值。

为方便识别针对同一应用程序检测得到的性能参数,还可以为同一应用程序检测得到的性能参数添加相同的应用程序标识,从而后续在将检测得到的性能参数缓存至指定代码队列后,可将指定代码队列中缓存的具有相同应用程序标识的性能参数作为同一批次定时存储至预设存储对象中。当然,为方便从存储对象中查找不同应用程序的性能参数,本发明实施例还可以将不同应用程序标识对应的性能参数分别存储于预设存储对象的不同位置。

本发明实施例在将指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中之后,还可以将预设存储对象中的性能参数进行可视化展示,以方便技术人员及时了解应用程序的性能,后文会对性能参数的展示进行详细介绍。

为了更加清楚的体现本发明方案,现结合上文实施例内容和图2,对应用程序的性能检测的整体过程进行介绍。

首先,在待检测应用程序启动时,同步启动预先以参数形式配置于应用程序中的代理Agent。

其次,利用启动后的代理Agent将被代理内容以参数形式传入应用程序的应用进程中。并且,在应用进程的环境变量中设置被扫描内容和需排除的扫描内容,在被扫描内容对应的各个被扫描包类的执行方法中分别注入用于扫描的扫描程序。

本发明实施例可以在检测到代理类agent-class时,执行注入扫描程序的操作。由于代理Agent在代理过程中会用到第三方开源依赖,因此还可以预先使用系统加载器将额外需要修正的jar文件加载到应用内存中。

然后,在完成注入操作之后,通过扫描程序扫描应用进程中的被代理内容,基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数。如访问请求在访问了流经的链路之后,基于扫描结果可检测出当前链路中各链路节点的信息,各链路节点信息对应各执行方法的性能参数。

然后,将各执行方法的性能参数缓存至指定代码队列(即内存队列),并等待定时存储任务。定时存储任务可在应用程序启动时同步触发,并每隔指定时间间隔执行一次存储任务。

进而,当执行定时存储任务时,将指定代码队列中的各执行方法的性能参数批量或依次存入预设存储对象。

最后,将预设存储对象中存储的执行方法的性能参数以链路形式展示于可视化展示界面上。

通过将应用程序性能参数的检测具体到应用程序的各执行方法,能够更细粒度的检测得到应用程序的性能,实现应用程序性能参数的细粒度链路追踪。

在本发明一实施例中,针对应用程序的单个请求或访问,还可以将单个请求或访问过程中所调用的各个执行方法的耗时时间求和得到单个请求或访问的耗时时间,并将不同的请求或访问的耗时时间和对应的请求或访问时间点以折线图的形式进行展示,如图3中所示,每个折线节点表示单个请求或访问的节点,纵轴表示请求或访问的耗时时间,横轴表示请求或访问产生的时间点,通过点击任意节点,便可以进入出相应节点对应的执行方法的链路图。

该实施例还可以在可视化展示界面上显示执行方法的筛选框,通过在筛选框中选择执行方法的类型,即可筛选出相应所需展示的执行方法,图3的筛选框中显示的“all”表示展示所有的执行方法。另外,还可以在折线图展示界面的空白位置展示不同应用程序所在的地址位置,如不同应用程序所在计算设备的IP地址(如172.17.9.17)。另外,还可以在展示界面上展示不同应用程序的不同项目,以选择监控检测的项目,如图3中折线图左侧展示的项目内容。

进一步,本发明实施例还可以将应用程序当前调用的具体执行方法的方法名称、执行时间、耗时时间展示于可视化展示界面上,以清楚地了解当前执行方法的相关信息。

在执行方法的链路图中,各执行方法的性能参数可分别作为链路的节点信息,即将性能参数作为链路的基本信息。参见图4,本发明实施例的链路图以树状结构的形式进行呈现,各节点之间的连线表示节点间的相互调用关系。方法名为HomeSearchController的执行方法没有被调用的父执行方法,因此执行方法HomeSearchController是一个入口方法,同时也是一个出口方法。另外,执行方法HomeSearchController还是HomeSearchBussinesslmpl的父执行方法。当然,HomeSearchBussinesslmpl类的某个方法也可作为父执行方法调用它下面连接的不同执行方法,如执行方法Message.0V、执行方法Message.push Message、以及执行方法HomeSearchVoSHome等。

本发明实施例的链路图中还展示出了各执行方法所消耗的时间,如执行方法HomeSearchController的消耗时间为281ms,执行方法Message.0V消耗时间为1ms等等。通过链路形式可视化的展示出各执行方法的性能参数,达到了对应用程序的性能更细粒度的链路追踪效果。

基于同一发明构思,本发明实施例还提供了一种应用程序的性能检测系统,图5示出了根据本发明一实施例的应用程序的性能检测系统的结构示意图。参见图5,应用程序的性能检测系统包括启动模块510、代理模块520和检测模块530。

启动模块510,适于响应于待检测应用程序的启动操作,同步启动预先以参数形式配置于应用程序中的代理程序。

代理模块520,适于利用启动后的代理程序将被代理内容以参数形式传入应用程序的应用进程中。

检测模块530,适于扫描应用程序的应用进程中的被代理内容,基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数。

本发明实施例通过将代理程序预先以参数形式配置于应用程序中,从而可在待检测应用程序启动时同步启动代理程序,无需再次向应用程序添加启动参数来启动代理程序,避免了由于添加启动参数的错误所造成的应用程序启动失败或执行失败的问题。并且,本发明实施例可以检测被代理内容相关进程中各执行方法的性能参数,即应用程序性能参数的检测具体到了各执行方法,从而可以更细粒度的检测得到应用程序的性能。

在本发明一实施例中,被代理内容包括被代理路径、项目名称、关键代码片段中至少一项。

参见图6,在本发明一实施例中,应用程序的性能检测系统除了包含上文实施例的各个模块,还包括设置模块540。

设置模块540适于在检测模块530扫描应用程序的应用进程中的被代理内容之前,将被代理内容设置为被扫描内容,在被扫描内容对应的各个被扫描包类的执行方法中分别注入用于扫描的扫描程序;设置需排除的扫描内容,其中,需排除的扫描内容包含重复性内容中非首次出现的内容或手动设置的需排除的扫描内容。

在本发明一实施例中,检测模块530还适于,通过注入被扫描包类的执行方法中的扫描程序扫描应用程序的应用进程中的被代理内容;基于扫描结果分别统计应用程序运行被代理内容相关进程所调用的各执行方法的性能参数并记录。

在本发明一实施例中,执行方法的性能参数,包括执行方法的消耗时间、执行方法的方法名、执行方法的父方法名、执行方法所属实体类、传入参数中至少一项。

在本发明一实施例中,检测模块530还适于,若执行方法的性能参数包括执行方法的耗时时间,检测应用程序运行被代理内容相关进程中所调用的各执行方法开始执行的时间点及执行完毕的时间点;计算执行完毕的时间点与开始执行的时间点的时间差值,将时间差值作为相应执行方法的消耗时间。

参见图7,在本发明一实施例中,应用程序的性能检测系统除了包含上文实施例的各个模块,还包括存储模块550。

存储模块550适于,在检测模块530基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数之后,将各执行方法的性能参数缓存至指定代码队列;将指定代码队列中缓存的性能参数以指定时间间隔定时存储至预设存储对象中。

在本发明一实施例中,存储模块550适于,将指定代码队列中缓存的性能参数,按照批量方式以指定时间间隔定时存储至预设存储对象中;或将指定代码队列中缓存的性能参数依次以指定时间间隔定时存储至预设存储对象中。

参见图8,在本发明一实施例中,应用程序的性能检测系统除了包含上文实施例的各个模块,还包括展示模块560。

展示模块560适于,在检测模块530基于扫描结果检测应用程序运行被代理内容相关进程所调用的各执行方法的性能参数之后,将存储于预设存储对象中的各执行方法的性能参数以链路形式进行可视化展示;其中,执行方法的性能参数作为链路的节点信息。

基于同一发明构思,本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任意实施例的应用程序的性能检测方法。

基于同一发明构思,本发明实施例还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任意实施例的应用程序的性能检测方法。

所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。

另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。

本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。

或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。

相关技术
  • 应用程序的性能检测方法、系统、存储介质及计算设备
  • 应用程序安装性能测试方法、装置、计算设备及存储介质
技术分类

06120113240812