CN113515448A - 应用程序启动时间信息的获取方法及装置 - Google Patents
应用程序启动时间信息的获取方法及装置 Download PDFInfo
- Publication number
- CN113515448A CN113515448A CN202110542888.1A CN202110542888A CN113515448A CN 113515448 A CN113515448 A CN 113515448A CN 202110542888 A CN202110542888 A CN 202110542888A CN 113515448 A CN113515448 A CN 113515448A
- Authority
- CN
- China
- Prior art keywords
- time
- information
- starting
- determining
- application program
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012360 testing method Methods 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 22
- 238000005457 optimization Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种应用程序启动时间信息的获取方法,可以应用于信息安全技术领域。该方法包括:根据预设测试次数对目标应用程序进行冷启动;获取所述目标应用程序的启动时间点信息;获取所述目标应用程序的应用日志;根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息;其中,所述启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个。本公开还提供了一种应用程序启动时间信息的获取装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及信息安全领域,具体涉及软件测试技术领域,更具体地涉及一种应用程序启动时间信息的获取方法、装置、设备、介质和程序产品。
背景技术
启动时间是应用程序(Application,缩写为APP)的重要性能指标,决定了用户使用APP的第一体验。
目前的应用程序启动时间测试平台仅支持测试启动过程首个页面的启动时间或启动总耗时。无法获取应用程序启动关键路径上的详细的时间消耗,进而难以对应用启动耗时问题进行优化。
发明内容
鉴于上述问题,本公开提供了应用程序启动时间信息的获取方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种应用程序启动时间信息的获取方法,包括:根据预设测试次数对目标应用程序进行冷启动;
获取所述目标应用程序的启动时间点信息;
获取所述目标应用程序的应用日志;
根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息;
其中,所述启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个。
根据本公开的实施例,所述根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息,包括:
根据关键字和所述应用日志确定特定日志,其中,所述特定日志包括关键路径名称和时间戳信息;
根据所述特定日志确定目标应用程序的关键路径的执行时间。
根据本公开的实施例,所述根据所述特定日志确定目标应用程序的关键路径的执行时间,包括:
根据所述特定日志确定关键路径名称和时间戳信息;
根据所述关键路径名称和所述时间戳信息确定目标应用程序的关键路径的执行时间。
根据本公开的实施例,所述时间戳信息包括第一时间信息和第二时间信息,所述根据所述关键路径名称和所述时间戳信息确定目标应用程序的关键路径的执行时间,包括:
根据所述时间戳信息确定第一时间信息和第二时间信息,其中,第一时间信息为开始执行关键路径的时间,第二时间信息为结束执行关键路径的时间;
根据所述关键路径名称和所述第一时间信息和所述第二时间信息确定目标应用程序的关键路径的执行时间。
根据本公开的实施例,所述启动加载时间为从程序启动到开始执行程序关键路径所消耗的时间,所述根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息,还包括:
根据所述启动时间点信息和所述特定日志确定启动加载时间。
根据本公开的实施例,所述根据所述启动时间点信息和所述特定日志确定启动加载时间,包括:
根据所述特定日志确定开始执行程序关键路径的时间戳信息;
根据所述开始执行程序关键路径的时间戳信息和所述启动时间点信息确定启动加载时间。
根据本公开的第二方面,还提供一种用于优化应用程序启动时间信息的方法,包括:
根据第一方面中任一项所述的方法获取启动时间信息;以及
根据所述启动时间信息确定优化方案。
根据本公开实施例,所述根据所述启动时间确定优化方案,包括:
根据多次启动时间信息和预设测试次数确定各关键路径的执行时间和启动加载时间的平均值;
根据所述平均值和所述多次启动时间信息确定异常值;
根据所述异常值定位启动过程中的耗时问题;
根据所述启动过程中的耗时问题确定优化方案。
本公开的第三方面提供了一种应用程序启动时间信息的获取装置,包括:启动模块,用于根据预设测试次数对目标应用程序进行冷启动;
第一获取模块,用于获取所述目标应用程序的启动时间点信息;
第二获取模块,用于获取所述目标应用程序的应用日志;以及
第一确定模块,用于根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息;
其中,所述启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个。
本公开的第三方面还提供了一种用于优化应用程序启动时间信息的装置,包括:第三获取模块,用于根据第一方面中任一项所述的方法获取启动时间信息;
第二确定模块,用于根据所述启动时间信息确定优化方案。
本公开的第四方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述应用程序启动时间信息的获取方法。
本公开的第五方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述应用程序启动时间信息的获取方法。
本公开的第六方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述应用程序启动时间信息的获取方法。
根据本公开实施例提供的应用程序启动时间信息的获取方法,可以获取到应用程序在启动过程中各个关键路径的启动耗时,进而能够定位启动耗时问题,优化启动时间。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的一种应用程序启动时间信息的获取方法的流程图;
图2示意性示出了根据本公开实施例的另一种应用程序启动时间信息的获取方法的流程图;
图3为本公开实施例提供的应用程序启动时间构成示意图;
图4示意性示出了根据本公开实施例的一种用于优化应用程序启动时间信息的方法的流程图;
图5示意性示出了根据本公开实施例的应用程序启动时间信息的获取装置的结构框图;
图6示意性示出了根据本公开实施例的用于优化应用程序启动时间信息的装置的结构框图;以及
图7示意性示出了根据本公开实施例的适于实现应用程序启动时间信息的获取方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本文中,首先对本文出现的名词进行解释:
冷启动:冷启动指启动应用时,后台没有该应用的进程,系统会重新创建一个新的进程分配给该应用。
启动时间点信息:指启动应用程序时的时刻。
关键路径执行时间:指应用程序中执行关键路径所消耗的时间。
启动加载时间:指从开始启动应用程序的时刻到开始执行第一个关键路径所消耗的时间。
本公开的实施例提供了一种应用程序启动时间信息的获取方法,包括:根据预设测试次数对目标应用程序进行冷启动;获取目标应用程序的启动时间点信息;获取目标应用程序的应用日志;根据应用日志和启动时间点信息确定目标应用程序的启动时间信息;其中,启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个。
本公开实施例的应用场景为应用程序开发测试场景,应用程序启动时间直接影响用户使用应用程序的第一体验,一个示例中,应用程序开发人员在测试应用程序时通过录屏,再对录制的图像进行处理来获取单个页面的启动时间,或通过获取系统日志获取启动总耗时。但现有技术无法获取到应用程序启动过程中各个关键路径的执行耗时,开发人员优化应用程序启动时间困难。
为解决上述技术问题,本公开实施例提供一种应用程序启动时间信息的获取方法,以下将通过图1~图6对公开实施例的应用程序启动时间信息的获取方法进行详细描述。
图1示意性示出了根据本公开实施例的一种应用程序启动时间信息的获取方法的流程图。
如图1所示,该实施例的应用程序启动时间信息的获取方法包括操作S110~操作S140。本实施例提供的方法的执行主体可以是后台系统或服务器,也可以是执行本实施例提供的方法的装置或设备,本实施例以自动化脚本测试工具为执行主体进行说明。
本实施例中的应用程序为基于Android系统的应用程序,使用自动化脚本测试工具对应用程序进行测试,自动化脚本测试工具通过Python实现。在执行操作S110之前,首先需要配置运行环境,在PC端安装Python及Android ADB(Android Debug Bridge,ADB)安卓调试桥环境,通过数据线连接测试设备和PC端,并开启测试设备开发者选项中USB调试开关,安装并首次启动待测试APP,提前完成权限授予等操作并退出APP。
在操作S110,根据预设测试次数对目标应用程序进行冷启动。
一个示例中,自动化脚本测试工具根据预设的测试次数,对应用程序进行连续的冷启动,冷启动指启动应用时,后台没有该应用的进程,系统会重新创建一个新的进程分配给该应用。若测试设备已经启动过该应用程序,将该程序完全关闭后再次启动,直至达到预设的测试次数。
在操作S110的过程中,随着待测试APP的重复启动,会生成应用日志。
在操作S120,获取目标应用程序的启动时间点信息。
一个示例中,待测试APP即为目标应用程序,在每次启动目标应用程序之前,记录目标应用程序的启动时刻从而获取目标应用程序的启动时间点信息。
在操作S130,获取目标应用程序的应用日志。
一个示例中,在操作S110的过程中会生成目标应用程序的应用日志,该应用日志记录有关键路径名称及关键路径对应的时间戳信息。
在操作S140,根据应用日志和启动时间点信息确定目标应用程序的启动时间信息。
一个示例中,根据操作S130获得的应用日志和操作S120中获得的目标应用程序的启动时间点信息,可以确定目标应用程序的启动时间信息,该启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个,启动加载时间指从开始启动应用程序的时刻到开始执行第一个关键路径所消耗的时间。具体的,根据应用日志可以确定目标应用程序的关键路径的名称和执行该关键路径的时间戳信息,进而可以确定该关键路径的执行时间;根据启动时间点信息和应用日志中的第一个关键路径的开始执行时间可以确定启动加载时间。
通过本公开实施例提供的应用程序启动时间信息的获取方法,通过获取目标应用程序的应用日志和目标应用程序的启动时间点信息可以确定各个关键路径的执行时间和启动加载时间,进而定位应用程序启动耗时问题,从而能够较快的对启动时间进行优化。
图2示意性示出了根据本公开实施例的另一种应用程序启动时间信息的获取方法的流程图。
如图2所示,该实施例的应用程序启动时间信息的获取包括操作S210~操作S260。
在操作S210,根据预设测试次数对目标应用程序进行冷启动。
一个示例中,开发人员通过Android系统原生API Log方法,使得目标应用程序在启动流程中输出固定格式应用日志,应用日志示例如下:
Log.i(′StartTest″,″Activity onCreate:″+System.currentTimeMillis())。
其中″StartTest″为关键字,相当于标识信息,用来过滤应用日志,定位获取启动流程日志;″Activity onCreate:″为关键路径名称,用于区分应用程序启动需要执行的不同的关键路径;System.currentTimeMillis()为时间戳信息,用来记录关键路径开始执行的时间以及执行完成的时间。
在操作S210的过程中,随着待测试APP的重复启动,会生成应用日志。
在操作S220,获取目标应用程序的启动时间点信息。
在操作S230,获取目标应用程序的应用日志。
一个示例中,操作S220~操作S230的技术方案及原理可见图1所示的操作S120~操作S130,不再赘述。
在操作S240,根据关键字和应用日志确定特定日志,其中,特定日志包括关键路径名称和时间戳信息;
一个示例中,由于在操作S230获得的应用日志包含关键字信息,在自动化测试脚本工具中输入该关键字信息,即可确定特定日志。具体的,通过在Python脚本中调用adb的logcat命令,实现按照关键字获取特定日志,data=os.popen(′adb logcat|find″StartTest″′),其中StartTest为关键字。特定日志包括关键路径名称和时间戳信息,每一个关键路径名称对应一个时间戳信息,该时间戳信息记录该关键路径的开始执行时间与执行完成时间。
在操作S250,根据特定日志确定目标应用程序的关键路径的执行时间。
根据本公开实施例,操作S250具体包括以下步骤:
第一步骤:根据特定日志确定关键路径名称和时间戳信息;
一个示例中,根据操作S240的特定日志可以确定关键路径名称和时间戳信息,一个应用程序在启动流程中包含多个关键路径,每个关键路径唯一对应一个时间戳信息。
第二步骤:根据关键路径名称和时间戳信息确定目标应用程序的关键路径的执行时间,其中时间戳信息包括第一时间信息和第二时间信息。
一个示例中,根据第一步骤得到的关键路径名称和时间戳信息可以确定目标应用程序的关键路径的执行时间。具体的,首先根据时间戳信息确定第一时间信息和第二时间信息,其中,第一时间信息为开始执行关键路径的时间,第二时间信息为结束执行关键路径的时间。图3为本公开实施例提供的应用程序启动时间构成示意图,如图3所示,a1~an表征待测试应用程序有n个关键路径,其中,t0为应用程序的启动时间点,t1为第一个关键路径的开始执行时间点,即为第一时间信息,t2为第一个关键路径的执行完成时间点,即为第二时间信息,t0~t1的时间段即为启动加载时间,t1~t2的时间段为关键路径a1的执行耗时。然后根据关键路径名称和第一时间信息和第二时间信息可以确定目标应用程序的关键路径的执行时间,如图3所示,每个关键路径对应的时间戳信息都有第一时间信息和第二时间信息,根据关键路径名称、第一时间信息和第二时间信息可以确定目标应用程序各个关键路径的执行耗时。
在操作S260,根据启动时间点信息和特定日志确定启动加载时间。
在操作S240之后还可以执行操作S260,根据启动时间点信息和特定日志确定启动加载时间,其中启动加载时间为从程序启动到开始执行程序关键路径所消耗的时间。具体包括以下步骤:
第一步骤:根据特定日志确定开始执行程序关键路径的时间戳信息。
一个示例中,由于特定日志中包括各个关键路径名称以及关键路径对应的时间戳信息,可以根据时间戳信息的时间先后确定目标应用程序中第一个关键路径名称,即最先执行的关键路径,进而确定开始执行时间该关键路径的时间戳信息。
第二步骤:根据开始执行程序关键路径的时间戳信息和启动时间点信息确定启动加载时间。
根据第一步骤得到的开始执行程序关键路径的时间戳信息和启动时间点信息可以确定从程序开始启动到开始执行程序的关键路径所消耗的时间,即启动加载时间。
通过本公开实施例提供的应用程序启动时间信息的获取方法,使目标应用程序在启动流程中输出固定格式应用日志,通过关键字和应用日志获取特定日志,根据特定日志和目标应用程序的启动时间点信息进而确定各个关键路径的执行时间和启动加载时间,进而定位应用程序启动耗时问题,从而能够较快的对启动时间进行优化。
图4示意性示出了根据本公开实施例的一种用于优化应用程序启动时间信息的方法的流程图。
在操作S310,根据应用程序启动时间信息的获取方法获取启动时间信息。
一个示例中,可以根据上述实施例提供的应用程序启动时间信息的获取方法来获取应用程序的启动时间信息,具体获取方法流程不再赘述。
在操作S320,根据启动时间信息确定优化方案。
一个示例中,在操作S320中根据启动时间信息确定优化方案具体包括:
第一步骤:根据多次启动时间信息和预设测试次数确定各关键路径的执行时间和启动加载时间的平均值。
第二步骤:根据平均值和多次启动时间信息确定异常值。
第三步骤:根据异常值定位启动过程中的耗时问题。
第四步骤:根据启动过程中的耗时问题确定优化方案。
一个示例中,根据预设测试次数对应用程序进行启动测试,会得到各关键路径多个执行时间和多个启动加载时间,再根据多个执行时间和多个启动加载时间和预设测试次数确定各关键路径的执行时间和启动加载时间的平均值。
根据第一步骤得到两个平均值和操作S310获取到的启动时间信息可以确定异常值,异常值指在目标应用程序启动的流程中某个关键路径的执行时间或启动加载时间明显大于平均值。
根据第二步骤确定的异常值可以进一步定位启动过程中的耗时问题,进而有针对的确定启动时间优化方案。
通过本公开实施例提供的优化应用程序启动时间信息的方法,通过获取目标应用程序启动流程中各个关键路径的执行时间和启动加载时间,进而定位应用程序启动耗时问题,从而能够较快的有针对性的对应用程序启动时间进行优化。
基于上述应用程序启动时间信息的获取方法,本公开提供了一种应用程序启动时间信息的获取装置。以下将结合图4对该装置进行详细描述。
图5示意性示出了根据本公开实施例的应用程序启动时间信息的获取装置的结构框图。
如图5所示,该实施例的应用程序启动时间信息的获取装置400包括启动模块410、第一获取模块420、第二获取模块430和第一确定模块440。
启动模块410用于根据预设测试次数对目标应用程序进行冷启动。在一实施例中,启动模块410可以用于执行前文描述的操作S110,在此不再赘述。
第一获取模块420用于获取目标应用程序的启动时间点信息。在一实施例中,第一获取模块420可以用于执行前文描述的操作S120,在此不再赘述。
第二获取模块430用于获取目标应用程序的应用日志。在一实施例中,第二获取模块430可以用于执行前文描述的操作S130,在此不再赘述。
第一确定模块440用于获取目标应用程序的应用日志。在一实施例中,第二获取模块440可以用于执行前文描述的操作S140,在此不再赘述。
根据本公开的实施例,启动模块410、第一获取模块420、第二获取模块430和第一确定模块440中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,启动模块410、第一获取模块420、第二获取模块430和第一确定模块440中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,启动模块410、第一获取模块420、第二获取模块430和第一确定模块440中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的用于优化应用程序启动时间信息的装置的结构框图。
如图6所示,该实施例的应用程序启动时间信息的获取装置500包括第三获取模块510、第二确定模块520。
第三获取模块510用于根据预设测试次数对目标应用程序进行冷启动。在一实施例中,第三获取模块510可以用于执行前文描述的操作S310,在此不再赘述。
第二确定模块520用于根据预设测试次数对目标应用程序进行冷启动。在一实施例中,第二确定模块520可以用于执行前文描述的操作S320,在此不再赘述。
图7示意性示出了根据本公开实施例的适于实现应用程序启动时间信息的获取方法的电子设备的方框图。
如图7所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (13)
1.一种应用程序启动时间信息的获取方法,包括:
根据预设测试次数对目标应用程序进行冷启动;
获取所述目标应用程序的启动时间点信息;
获取所述目标应用程序的应用日志;
根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息;
其中,所述启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个。
2.根据权利要求1所述的方法,其特征在于,所述根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息,包括:
根据关键字和所述应用日志确定特定日志,其中,所述特定日志包括关键路径名称和时间戳信息;
根据所述特定日志确定目标应用程序的关键路径的执行时间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述特定日志确定目标应用程序的关键路径的执行时间,包括:
根据所述特定日志确定关键路径名称和时间戳信息;
根据所述关键路径名称和所述时间戳信息确定目标应用程序的关键路径的执行时间。
4.根据权利要求3所述的方法,其特征在于,所述时间戳信息包括第一时间信息和第二时间信息,所述根据所述关键路径名称和所述时间戳信息确定目标应用程序的关键路径的执行时间,包括:
根据所述时间戳信息确定第一时间信息和第二时间信息,其中,第一时间信息为开始执行关键路径的时间,第二时间信息为结束执行关键路径的时间;
根据所述关键路径名称和所述第一时间信息和所述第二时间信息确定目标应用程序的关键路径的执行时间。
5.根据权利要求2所述的方法,其特征在于,所述启动加载时间为从程序启动到开始执行程序关键路径所消耗的时间,所述根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息,还包括:
根据所述启动时间点信息和所述特定日志确定启动加载时间。
6.根据权利要求5所述的方法,其特征在于,所述根据所述启动时间点信息和所述特定日志确定启动加载时间,包括:
根据所述特定日志确定开始执行程序关键路径的时间戳信息;
根据所述开始执行程序关键路径的时间戳信息和所述启动时间点信息确定启动加载时间。
7.一种用于优化应用程序启动时间信息的方法,包括:
根据权利要求1-6中任一项所述的方法获取启动时间信息;以及
根据所述启动时间信息确定优化方案。
8.根据权利要求7所述的方法,其特征在于,所述根据所述启动时间确定优化方案,包括:
根据多次启动时间信息和预设测试次数确定各关键路径的执行时间和启动加载时间的平均值;
根据所述平均值和所述多次启动时间信息确定异常值;
根据所述异常值定位启动过程中的耗时问题;
根据所述启动过程中的耗时问题确定优化方案。
9.一种应用程序启动时间信息的获取装置,包括:
启动模块,用于根据预设测试次数对目标应用程序进行冷启动;
第一获取模块,用于获取所述目标应用程序的启动时间点信息;
第二获取模块,用于获取所述目标应用程序的应用日志;以及
第一确定模块,用于根据所述应用日志和所述启动时间点信息确定所述目标应用程序的启动时间信息;
其中,所述启动时间信息包括关键路径的执行时间和启动加载时间中的至少一个。
10.一种用于优化应用程序启动时间信息的装置,包括:
第三获取模块,用于根据权利要求1-6中任一项所述的方法获取启动时间信息;
第二确定模块,用于根据所述启动时间信息确定优化方案。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~6中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110542888.1A CN113515448A (zh) | 2021-05-18 | 2021-05-18 | 应用程序启动时间信息的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110542888.1A CN113515448A (zh) | 2021-05-18 | 2021-05-18 | 应用程序启动时间信息的获取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113515448A true CN113515448A (zh) | 2021-10-19 |
Family
ID=78064688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110542888.1A Pending CN113515448A (zh) | 2021-05-18 | 2021-05-18 | 应用程序启动时间信息的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515448A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114690988A (zh) * | 2022-03-08 | 2022-07-01 | 北京字跳网络技术有限公司 | 测试方法、装置和电子设备 |
CN117493127A (zh) * | 2023-12-29 | 2024-02-02 | 太平金融科技服务(上海)有限公司 | 一种应用程序检测方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018005546A (ja) * | 2016-07-01 | 2018-01-11 | 富士通株式会社 | 情報処理装置、プログラム実行状態表示方法およびプログラム実行状態表示プログラム |
CN109359020A (zh) * | 2018-08-16 | 2019-02-19 | 中国平安人寿保险股份有限公司 | 启动时间测试方法及装置、计算机装置及存储介质 |
CN111666113A (zh) * | 2020-04-24 | 2020-09-15 | 北京奇艺世纪科技有限公司 | 一种应用程序启动管理方法、装置、电子设备及存储介质 |
CN112783761A (zh) * | 2020-12-25 | 2021-05-11 | 广州品唯软件有限公司 | 一种应用程序的冷启动时长测试方法、装置及系统 |
-
2021
- 2021-05-18 CN CN202110542888.1A patent/CN113515448A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018005546A (ja) * | 2016-07-01 | 2018-01-11 | 富士通株式会社 | 情報処理装置、プログラム実行状態表示方法およびプログラム実行状態表示プログラム |
CN109359020A (zh) * | 2018-08-16 | 2019-02-19 | 中国平安人寿保险股份有限公司 | 启动时间测试方法及装置、计算机装置及存储介质 |
CN111666113A (zh) * | 2020-04-24 | 2020-09-15 | 北京奇艺世纪科技有限公司 | 一种应用程序启动管理方法、装置、电子设备及存储介质 |
CN112783761A (zh) * | 2020-12-25 | 2021-05-11 | 广州品唯软件有限公司 | 一种应用程序的冷启动时长测试方法、装置及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114690988A (zh) * | 2022-03-08 | 2022-07-01 | 北京字跳网络技术有限公司 | 测试方法、装置和电子设备 |
CN114690988B (zh) * | 2022-03-08 | 2024-01-23 | 北京字跳网络技术有限公司 | 测试方法、装置和电子设备 |
CN117493127A (zh) * | 2023-12-29 | 2024-02-02 | 太平金融科技服务(上海)有限公司 | 一种应用程序检测方法、装置、设备及介质 |
CN117493127B (zh) * | 2023-12-29 | 2024-04-05 | 太平金融科技服务(上海)有限公司 | 一种应用程序检测方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US8386851B2 (en) | Functional coverage using combinatorial test design | |
US10983887B2 (en) | Validation of multiprocessor hardware component | |
US10776129B2 (en) | Method and apparatus for controlling a startup bootstrap program of an intelligent TV set | |
CN110532185B (zh) | 测试方法、装置、电子设备和计算机可读存储介质 | |
US9367427B2 (en) | Embedding and executing trace functions in code to gather trace data | |
CN113515448A (zh) | 应用程序启动时间信息的获取方法及装置 | |
US9612837B2 (en) | Trace method and information processing apparatus | |
CN108304209B (zh) | 固件升级方法及固件升级系统 | |
CN111831573A (zh) | 代码分支覆盖情况的确定方法、装置、计算机系统和介质 | |
CN110674047A (zh) | 软件测试方法、装置及电子设备 | |
CN112799940A (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
CN110928786B (zh) | 针对财务程序的测试方法和装置 | |
CN112148594A (zh) | 一种脚本测试方法、装置、电子设备及存储介质 | |
CN110399209B (zh) | 数据处理方法、系统、电子设备和存储介质 | |
CN113377586A (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
US11422916B2 (en) | Usage amount monitoring method and monitoring unit of electronic control unit for vehicle | |
CN111857854A (zh) | 关机资源加载方法、装置、存储介质和电子设备 | |
CN115756934A (zh) | 一种应用崩溃分析方法及装置 | |
CN114791885A (zh) | 接口测试方法、装置、设备及介质 | |
CN113127082A (zh) | 数据处理方法、服务器、服务节点、系统和存储介质 | |
CN100426234C (zh) | 测量基本输入输出系统的自我开机测试时间的方法 | |
US11726901B2 (en) | Continuous testing and dependency tracking for java virtual machines | |
CN112380092B (zh) | 一种应用程序启动时间测试方法 | |
CN109426506B (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 |