CN111240927A - 检测程序中方法耗时的方法、装置及存储介质 - Google Patents

检测程序中方法耗时的方法、装置及存储介质 Download PDF

Info

Publication number
CN111240927A
CN111240927A CN202010007074.3A CN202010007074A CN111240927A CN 111240927 A CN111240927 A CN 111240927A CN 202010007074 A CN202010007074 A CN 202010007074A CN 111240927 A CN111240927 A CN 111240927A
Authority
CN
China
Prior art keywords
time
screening
methods
program
consuming
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
Application number
CN202010007074.3A
Other languages
English (en)
Other versions
CN111240927B (zh
Inventor
饶福贵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN202010007074.3A priority Critical patent/CN111240927B/zh
Publication of CN111240927A publication Critical patent/CN111240927A/zh
Application granted granted Critical
Publication of CN111240927B publication Critical patent/CN111240927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3419Recording 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
    • G06F11/3423Recording 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 where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开是关于检测程序中方法耗时的方法、装置及计算机可读存储介质,检测程序中方法耗时的方法,包括:获取待测试程序中待进行耗时检测的多个方法;利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法;在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。通过对待测试程序中待进行耗时检测的多个方法中的每一方法进行标注,以分别确定每一方法的起始时间和结束时间,得到每一方法的耗时,快速、准确地定位程序的缺陷,便利了程序优化过程。

Description

检测程序中方法耗时的方法、装置及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及检测程序中方法耗时的方法、检测程序中方法装置及存储介质。
背景技术
在应用程序的开发与应用过程中,需要对应用程序运行中,采集运行中的线上数据,对应用程序的性能进行监控,并根据监控结果对应用程序代码进行分析、优化。
对应用程序的性能监控中,较为重要的是对应用程序中程序的耗时数据进行监控,耗时数据直接影响到程序的运行速度。定位程序在耗时大的代码,可以避免应用程序运行时出现内存抖动产生卡顿。
发明内容
为克服相关技术中存在的问题,本公开提供检测程序中方法耗时的方法、检测程序中方法耗时的装置、系统及计算机可读存储介质。
根据本公开实施例的一方面,提供检测程序中方法耗时的方法,检测程序中方法耗时的方法包括:获取待测试程序中待进行耗时检测的多个方法;利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法;在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
在一实施例中,待进行耗时检测的多个方法为对待测试程序编译后得到的Class文件。
在一实施例中,利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法,包括:创建Class文件类型的功能接口,功能接口具有对方法标注标识的功能;利用接口,在多个方法中的每一方法前分别添加方法标识,得到多个标注有方法标识的方法。
在一实施例中,确定方法的起始时间和结束时间,包括:创建Class文件类型的时间函数,时间函数包括开始时间确定函数以及结束时间确定函数;依据开始时间确定函数,确定方法的起始时间;依据结束时间确定函数,确定方法的结束时间。
在一实施例中,方法还包括:依据方法的起始时间和结束时间,确定方法的耗时;将耗时在用户交互界面展示。
在一实施例中,方法还包括:在用户交互界面上显示筛选控件,筛选控件用于获取用户输入筛选方法的筛选条件,筛选条件包括:耗时筛选、线程筛选和/或方法名称筛选;基于筛选控件获取到的筛选条件,筛选符合筛选条件的方法的耗时;将耗时在用户交互界面展示,包括:将符合筛选条件的方法的耗时,在用户交互界面展示。
根据本公开实施例的又一方面,提供检测程序中方法耗时的装置,检测程序中方法耗时的装置包括:获取模块,用于获取待测试程序中待进行耗时检测的多个方法;标注模块,用于利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法;确定模块,用于在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
在一实施例中,待进行耗时检测的多个方法为对待测试程序编译后得到的Class文件。
在一实施例中,标注模块采用如下方式利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法:创建Class文件类型的功能接口,功能接口具有对方法标注标识的功能;利用接口,在多个方法中的每一方法前分别添加方法标识,得到多个标注有方法标识的方法。
在一实施例中,确定模块采用如下方式确定方法的起始时间和结束时间:创建Class文件类型的时间函数,时间函数包括开始时间确定函数以及结束时间确定函数;依据开始时间确定函数,确定方法的起始时间;依据结束时间确定函数,确定方法的结束时间。
在一实施例中,确定模块还用于:依据方法的起始时间和结束时间,确定方法的耗时;装置还包括:展示模块;展示模块,用于将耗时在用户交互界面展示。
在一实施例中,装置还包括:显示模块,用于在用户交互界面上显示筛选控件,筛选控件用于获取用户输入筛选方法的筛选条件,筛选条件包括:耗时筛选、线程筛选和/或方法名称筛选;筛选模块,用于基于筛选控件获取到的筛选条件,筛选符合筛选条件的方法的耗时;展示模块,采用如下方式将耗时在用户交互界面展示:将符合筛选条件的方法的耗时,在用户交互界面展示。
根据本公开实施例的又一方面,提供检测程序中方法耗时的装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:执行前述任意一项所述的检测程序中方法耗时的方法。
根据本公开实施例的又一个方面,提供非临时性计算机可读存储介质,当存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述一项所述的检测程序中方法耗时的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:根据本公开的实施例,利用方法标识对待测试程序中待进行耗时检测的多个方法中的每一方法进行标注,以分别确定每一方法的起始时间和结束时间,进而得到每一方法的耗时,快速、准确地定位程序的缺陷,便利了程序优化过程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据本公开一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。
图2是根据本公开另一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。
图3是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。
图4是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。
图5是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。
图6是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的装置的框图。
图7是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的装置的框图。
图8是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的装置的框图。
图9是根据一示例性实施例示出的一种装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种检测程序中方法耗时的方法的流程图,该方法可以应用于智能终端设备中,由智能终端设备中的处理器执行,智能终端设备可以是安卓系统的智能手机、平板电脑等,智能终端设备中安装有应用程序。
如图1所示,检测程序中方法耗时的方法包括以下步骤。
在步骤S101中,获取待测试程序中待进行耗时检测的多个方法。本公开中待测试程序用JAVA语言的文件,待测试程序中包括多个方法,方法即待测试程序的事件,每个方法在待测试程序运行中,会产生对应的耗时。
为了更好地分析待测试程序在每个阶段的运行速度和耗时信息,需要对待测试程序中的各个方法的耗时数据进行分析。
在步骤S102中,利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法。
为了测试待测试程序在运行过程中多个方法的耗时信息,可以是采用对待测试程序插桩的方法,实现检测程序中方法耗时。
程序插桩,即不影响待测试程序原有逻辑的完整性,在程序的相应位置上插入一些探针,通过探针的执行,输出程序的运行特征数据。
利用方法标识,对待测试程序中、待进行耗时检测的多个方法的分别标注,使得待进行耗时检测的多个方法中的每个方法都具有方法标识,实现对待进行耗时检测的多个方法进行注释性标注。可以在后续的字节码处理的过程中,遍历待测试程序中所有被标识的方法,对被标识的方法进行耗时统计。
在步骤S103中,在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
在进行方法耗时检测时,对待测试程序中,针对多个方法中的每一方法标识所标识的方法,分别确定方法的起始时间和结束时间,以得到待测试程序运行中,每个方法的耗时。
根据本公开的实施例,利用方法标识对待测试程序中待进行耗时检测的多个方法中的每一方法进行标注,以分别确定每一方法的起始时间和结束时间,进而得到每一方法的耗时,快速、准确地定位程序的缺陷,便利了程序优化过程。
在一实施例中,待进行耗时检测的多个方法为对所述待测试程序编译后得到的Class文件。
对待测试程序的JAVA语言的文件,经过编译,生成编译后的Class文件。JAVA语言的文件是程序员所写的以JAVA语言形式的文件源码文件。
Class文件即JAVA语言经编译器编译之后的,供虚拟机解释执行的二进制字节码文件,要运行以JAVA语言形式的文件源码文件,必须将源码文件转换为Class文件,可以通过IDE工具或者命令行去将以JAVA语言形式的文件源码文件编译成Class文件。
将待测试程序中经过编译,得到编译后的Class文件,以实现后续待测试程序中多个方法的耗时检测。
本实施例公开另一种检测程序中方法耗时的方法。参考图2,图2示出了本公开另一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。如图2所示,图1所示的步骤S102,包括如下步骤。
在步骤S1021中,创建Class文件类型的功能接口,功能接口具有对方法标注标识的功能。
在检测程序中方法耗时的方法中,可以是预先创建接口类型(interface)的Class类,例如TimeStatistics类,TimeStatistics类的作用是对待测试程序中待进行耗时检测的多个方法进行标注。通过创建Class文件类型的功能接口,可以节省对待测试程序代码进行编译的时间,提高编译效率。
在步骤S1022中,利用功能接口,在多个方法中的每一方法前分别添加方法标识,得到多个标注有方法标识的方法。
通过对待测试程序中的待进行耗时检测的多个方法,添加@TimeStatistics的方法标识,得到待进行耗时检测的多个方法。
在进行方法耗时检测时,针对添加有@TimeStatistics的每一方法,分别确定方法的起始时间和结束时间。可以得到待测试程序的每个方法的耗时,可以根据方法的耗时,当待测试程序进行分析、优化,或者针对待测试程序运行时出现内存抖动、频繁GC的问题进行快速定位。
本实施例公开另一种检测程序中方法耗时的方法。参考图3,图3示出了本公开又一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。如图3所示,图1所示的步骤S103,包括如下步骤。
在步骤S1031中,创建Class文件类型的时间函数,时间函数包括开始时间确定函数以及结束时间确定函数。
在检测程序中方法耗时的方法中,可以是预先创建Class文件类型的时间函数,例如,建立耗时检测的TimeUtils类。TimeUtils类的功能是能够识别出待测试程序中的方法的开头以及方法的结尾。
在创建的TimeUtils类中,创建时间函数,时间函数包括开始时间确定函数以及结束时间确定函数。例如,在创建的TimeUtils类中,分别定义start()方法以及end()方法。
调用start()方法用于确定方法开始的时间,end()方法用于确定方法的结束时间。
通过创建Class文件类型的时间,进一步节省对待测试程序代码进行编译的时间,提高编译效率。
在步骤S1032中,依据开始时间确定函数,确定方法的起始时间。
在待测试程序运行中,对于每个待进行耗时检测的方法,在方法进入的时候调用字节码形式的TimeUtils.start()方法,得到方法的起始时间。
在步骤S1033中,依据结束时间确定函数,确定方法的结束时间。
在待测试程序运行中,对于每个待进行耗时检测的方法,在方法退出的时候调用字节码形式的TimeUtils.end()方法,得到方法的结束时间。
图4是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。如图4所示,检测程序中方法耗时的方法包括以下步骤。
在步骤S401中,获取待测试程序中待进行耗时检测的多个方法。
在步骤S402中,利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法。
在步骤S403中,在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
在步骤S404中,依据方法的起始时间和结束时间,确定方法的耗时。
在待测试程序中,待进行耗时检测的多个方法中的每个方法,根据获取到的其起始时间以及结束时间,可以准确确定该方法在运行中的耗时,以获得待测试程序的运行过程中,丰富的运行信息,以便对待测试程序进行分析以及优化。
在步骤S405中,将耗时在用户交互界面展示。
可以将获取到的待测试程序中的方法的耗时进行统计,创建UI展示界面,通过UI界面进行展示。
例如,使用React创建UI展示界面,在终端搭建了服务器,通过地址访问UI展示界面,并且通过socket进行数据传输,在程序运行中确定方法的耗时数据,在React实现的UI界面将方法的耗时数据实时展示在浏览器上,可以清楚地确定待测试程序中的哪些方法耗时最长,以便利用方法的耗时数据,分析程序缺陷,对待测试程序进行分析、优化。
图5是根据本公开又一示例性实施例示出的一种检测程序中方法耗时的方法的流程图。如图5所示,检测程序中方法耗时的方法包括以下步骤。
在步骤S501中,获取待测试程序中待进行耗时检测的多个方法。
在步骤S502中,利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法。
在步骤S503中,在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
在步骤S504中,依据方法的起始时间和结束时间,确定方法的耗时。
在步骤S505中,在用户交互界面上显示筛选控件,筛选控件用于获取用户输入筛选方法的筛选条件。
筛选条件包括耗时筛选、线程筛选和/或方法名称筛选。
在UI展示界面,可以显示筛选控件,用户通过操作筛选控件,根据筛选条件进行复核条件的筛选。
例如,可以在筛选控件设置有耗时筛选、线程筛选、根据方法名搜索等功能,通过筛选,能够快速、优选定位程序运行中,线程中耗时多的方法。
在步骤S506中,基于筛选控件获取到的筛选条件,筛选符合筛选条件的方法的耗时。例如,用户在UI展示界面的筛选空间中,选择主线程、耗时大于50ms的方法,可以根据“主线程、耗时大于50ms”的筛选条件,筛选出符合筛选条件的方法。
在步骤S507中,将符合所述筛选条件的方法的耗时,在用户交互界面展示。
将符合所述筛选条件的方法的耗时,在用户交互界面展示。可以是,以不同的显示颜色,区别显示输出的方法耗时。例如,低耗时方法的显示颜色较为柔和,高耗时方法的显示颜色鲜明,使用户快速、直观地掌握待进行耗时检测的多个方法的耗时情况,提高对高耗时方法的处理效率。
在一实施例中,TimeUtils类可配置为将待测试程序中方法的耗时在本地日志输出,在本地进行耗时的分析。TimeUtils类还可被配置为将方法的耗时数据发送至服务器,在服务器处进行方法的耗时的分析,以便对方法的运行数据进行记录保存。
图6是根据一示例性实施例示出的一种检测程序中方法耗时的装置框图。如图6所示,检测程序中方法耗时的装置200包括:获取模块210、标注模块220和确定模块230。
获取模块210,用于获取待测试程序中待进行耗时检测的多个方法。
标注模块220,用于利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法。
确定模块230,用于在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
在一实施例中,待进行耗时检测的多个方法为对待测试程序编译后得到的Class文件。
在一实施例中,标注模块220采用如下方式利用方法标识对多个方法中的每一方法进行标注,得到多个标注有方法标识的方法:创建Class文件类型的功能接口,功能接口具有对方法标注标识的功能;利用接口,在多个方法中的每一方法前分别添加方法标识,得到多个标注有方法标识的方法。
在一实施例中,确定模块230采用如下方式确定方法的起始时间和结束时间:创建Class文件类型的时间函数,时间函数包括开始时间确定函数以及结束时间确定函数;依据开始时间确定函数,确定方法的起始时间;依据结束时间确定函数,确定方法的结束时间。
图7是根据一示例性实施例示出的一种检测程序中方法耗时的装置框图。如图7所示,检测程序中方法耗时的装置200还包括:展示模块240。
确定模块230还用于:依据方法的起始时间和结束时间,确定方法的耗时。
展示模块240,用于将耗时在用户交互界面展示。
图8是根据一示例性实施例示出的一种检测程序中方法耗时的装置框图。如图8所示,检测程序中方法耗时的装置200还包括:显示模块250和筛选模块260。
显示模块250,用于在用户交互界面上显示筛选控件,筛选控件用于获取用户输入筛选方法的筛选条件。
筛选条件包括:耗时筛选、线程筛选和/或方法名称筛选。
筛选模块260,用于基于筛选控件获取到的筛选条件,筛选符合筛选条件的方法的耗时。
展示模块240采用如下方式将耗时在用户交互界面展示:将符合筛选条件的方法的耗时,在用户交互界面展示。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种检测程序中方法耗时的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还监测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (14)

1.一种检测程序中方法耗时的方法,其特征在于,所述方法包括:
获取待测试程序中待进行耗时检测的多个方法;
利用方法标识对所述多个方法中的每一方法进行标注,得到多个标注有方法标识的方法;
在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
2.根据权利要求1所述的检测程序中方法耗时的方法,其特征在于,待进行耗时检测的多个方法为对所述待测试程序编译后得到的Class文件。
3.根据权利要求2所述的检测程序中方法耗时的方法,其特征在于,利用方法标识对所述多个方法中的每一方法进行标注,得到多个标注有方法标识的方法,包括:
创建Class文件类型的功能接口,所述功能接口具有对方法标注标识的功能;
利用所述功能接口,在所述多个方法中的每一方法前分别添加方法标识,得到多个标注有方法标识的方法。
4.根据权利要求2或3所述的检测程序中方法耗时的方法,其特征在于,确定方法的起始时间和结束时间,包括:
创建Class文件类型的时间函数,所述时间函数包括开始时间确定函数以及结束时间确定函数;
依据所述开始时间确定函数,确定方法的起始时间;
依据所述结束时间确定函数,确定方法的结束时间。
5.根据权利要求1所述的检测程序中方法耗时的方法,其特征在于,所述方法还包括:
依据方法的起始时间和结束时间,确定所述方法的耗时;
将所述耗时在用户交互界面展示。
6.根据权利要求5所述的检测程序中方法耗时的方法,其特征在于,所述方法还包括:
在所述用户交互界面上显示筛选控件,所述筛选控件用于获取用户输入筛选方法的筛选条件,所述筛选条件包括:耗时筛选、线程筛选和/或方法名称筛选;
基于所述筛选控件获取到的筛选条件,筛选符合所述筛选条件的方法的耗时;
将所述耗时在用户交互界面展示,包括:
将符合所述筛选条件的方法的耗时,在用户交互界面展示。
7.一种检测程序中方法耗时的装置,其特征在于,所述装置包括:
获取模块,用于获取待测试程序中待进行耗时检测的多个方法;
标注模块,用于利用方法标识对所述多个方法中的每一方法进行标注,得到多个标注有方法标识的方法;
确定模块,用于在进行方法耗时检测时,针对每一方法标识所标识的方法,分别确定方法的起始时间和结束时间。
8.根据权利要求7所述的检测程序中方法耗时的装置,其特征在于,待进行耗时检测的多个方法为对所述待测试程序编译后得到的Class文件。
9.根据权利要求8所述的检测程序中方法耗时的装置,其特征在于,所述标注模块采用如下方式利用方法标识对所述多个方法中的每一方法进行标注,得到多个标注有方法标识的方法:
创建Class文件类型的功能接口,所述功能接口具有对方法标注标识的功能;
利用所述功能接口,在所述多个方法中的每一方法前分别添加方法标识,得到多个标注有方法标识的方法。
10.根据权利要求8或9所述的检测程序中方法耗时的装置,其特征在于,所述确定模块采用如下方式确定方法的起始时间和结束时间:
创建Class文件类型的时间函数,所述时间函数包括开始时间确定函数以及结束时间确定函数;
依据所述开始时间确定函数,确定方法的起始时间;
依据所述结束时间确定函数,确定方法的结束时间。
11.根据权利要求7所述的检测程序中方法耗时的装置,其特征在于,所述确定模块还用于:
依据方法的起始时间和结束时间,确定所述方法的耗时;
所述装置还包括:展示模块;
所述展示模块,用于将所述耗时在用户交互界面展示。
12.根据权利要求11所述的检测程序中方法耗时的装置,其特征在于,所述装置还包括:
显示模块,用于在所述用户交互界面上显示筛选控件,所述筛选控件用于获取用户输入筛选方法的筛选条件,所述筛选条件包括:耗时筛选、线程筛选和/或方法名称筛选;
筛选模块,用于基于所述筛选控件获取到的筛选条件,筛选符合所述筛选条件的方法的耗时;
所述展示模块,采用如下方式将所述耗时在用户交互界面展示:将符合所述筛选条件的方法的耗时,在用户交互界面展示。
13.一种检测程序中方法耗时的装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行权利要求1至6中任意一项所述的检测程序中方法耗时的方法。
14.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行权利要求1至6中任意一项所述的检测程序中方法耗时的方法。
CN202010007074.3A 2020-01-03 2020-01-03 检测程序中方法耗时的方法、装置及存储介质 Active CN111240927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010007074.3A CN111240927B (zh) 2020-01-03 2020-01-03 检测程序中方法耗时的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010007074.3A CN111240927B (zh) 2020-01-03 2020-01-03 检测程序中方法耗时的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111240927A true CN111240927A (zh) 2020-06-05
CN111240927B CN111240927B (zh) 2024-01-30

Family

ID=70874275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010007074.3A Active CN111240927B (zh) 2020-01-03 2020-01-03 检测程序中方法耗时的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111240927B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736817A (zh) * 2020-07-21 2020-10-02 平安国际智慧城市科技股份有限公司 函数执行耗时的确定方法、装置、终端设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224437A (zh) * 2014-06-11 2016-01-06 腾讯科技(深圳)有限公司 一种获取移动终端上事务执行耗时的方法和装置
CN106649063A (zh) * 2016-11-22 2017-05-10 腾讯科技(深圳)有限公司 用于监测程序运行时耗时数据的方法及系统
CN106776302A (zh) * 2016-12-01 2017-05-31 郑州云海信息技术有限公司 计算java项目中方法执行时间的方法、装置
CN107729134A (zh) * 2017-10-31 2018-02-23 努比亚技术有限公司 一种提高应用程序本地方法运行速度的方法、移动终端及计算机可读存储介质
CN108549600A (zh) * 2018-03-29 2018-09-18 珠海市魅族科技有限公司 一种性能分析方法及装置、服务器和可读存储介质
US20190034046A1 (en) * 2017-07-28 2019-01-31 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for displaying application, and storage medium
CN110134400A (zh) * 2019-04-02 2019-08-16 北京奇艺世纪科技有限公司 数据获取方法、装置、电子设备及计算机可读存储介质
CN110300165A (zh) * 2019-06-26 2019-10-01 北京字节跳动网络技术有限公司 一种功能程序的调用方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224437A (zh) * 2014-06-11 2016-01-06 腾讯科技(深圳)有限公司 一种获取移动终端上事务执行耗时的方法和装置
CN106649063A (zh) * 2016-11-22 2017-05-10 腾讯科技(深圳)有限公司 用于监测程序运行时耗时数据的方法及系统
CN106776302A (zh) * 2016-12-01 2017-05-31 郑州云海信息技术有限公司 计算java项目中方法执行时间的方法、装置
US20190034046A1 (en) * 2017-07-28 2019-01-31 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for displaying application, and storage medium
CN107729134A (zh) * 2017-10-31 2018-02-23 努比亚技术有限公司 一种提高应用程序本地方法运行速度的方法、移动终端及计算机可读存储介质
CN108549600A (zh) * 2018-03-29 2018-09-18 珠海市魅族科技有限公司 一种性能分析方法及装置、服务器和可读存储介质
CN110134400A (zh) * 2019-04-02 2019-08-16 北京奇艺世纪科技有限公司 数据获取方法、装置、电子设备及计算机可读存储介质
CN110300165A (zh) * 2019-06-26 2019-10-01 北京字节跳动网络技术有限公司 一种功能程序的调用方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736817A (zh) * 2020-07-21 2020-10-02 平安国际智慧城市科技股份有限公司 函数执行耗时的确定方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN111240927B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
CN103995834A (zh) 敏感信息检测方法及相关装置
CN107659717B (zh) 状态检测方法、装置和存储介质
CN104915290A (zh) 应用测试方法及装置
CN111221733A (zh) 信息处理方法、装置、移动终端及存储介质
CN112241361A (zh) 测试用例生成方法及装置、问题场景自动复现方法及装置
CN109684112B (zh) 程序文件运行方法、装置、终端及存储介质
CN111427449A (zh) 界面显示方法、装置及存储介质
CN112416751A (zh) 接口自动化测试的处理方法、装置及存储介质
CN111240927B (zh) 检测程序中方法耗时的方法、装置及存储介质
CN113010157A (zh) 一种代码生成方法及装置
CN113905192A (zh) 一种字幕编辑方法、装置、电子设备及存储介质
CN111209195B (zh) 一种生成测试用例的方法及装置
CN112256563A (zh) 安卓应用稳定性测试方法、装置、电子设备及存储介质
CN112685269A (zh) 数据的获取方法、装置、电子设备及存储介质
CN112333518A (zh) 用于视频的功能配置方法、装置及电子设备
CN113905267B (zh) 一种字幕编辑方法、装置、电子设备及存储介质
CN106354595B (zh) 移动终端、硬件组件状态检测方法及装置
CN115543831A (zh) 一种测试脚本生成方法、装置、设备和存储介质
CN112383661B (zh) 移动端自动化测试方法、装置、电子设备及存储介质
CN106155863A (zh) 终端预期行为控制方法及终端
CN112631695A (zh) 一种数据校验方法、装置、电子设备及存储介质
CN111061633A (zh) 一种网页首屏时间检测方法、装置、终端及介质
CN109947640B (zh) 基于回归测试的核心功能覆盖度统计方法及装置
CN115357519B (zh) 一种测试方法、装置、设备及介质
CN112069060A (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
GR01 Patent grant
GR01 Patent grant