CN113934475B - 应用调用的分析方法及电子设备 - Google Patents
应用调用的分析方法及电子设备 Download PDFInfo
- Publication number
- CN113934475B CN113934475B CN202110911766.5A CN202110911766A CN113934475B CN 113934475 B CN113934475 B CN 113934475B CN 202110911766 A CN202110911766 A CN 202110911766A CN 113934475 B CN113934475 B CN 113934475B
- Authority
- CN
- China
- Prior art keywords
- function
- graph
- time
- sampling
- target
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本申请提供了一种应用调用的分析方法及电子设备。该方法包括:电子设备以时间片为粒度,对应用在运行过程中的各函数的调用情况进行分析,以得到各时间片内的函数调用情况,并以图形的方式进行显示。电子设备所显示的图形中,包括每个时间片对应的子图形。每个子图形可用于表示该时间片内的各函数的调用情况,从而展示更多的函数调用信息。
Description
技术领域
本申请实施例涉及终端设备领域,尤其涉及一种应用调用的分析方法及电子设备。
背景技术
目前的日志分析方式,通常是通过火焰图的方式,统计函数的耗时占比,以使得操作人员可基于函数的耗时占比,分析日志中存在的问题。但是,该种分析方式较为笼统,操作人员可获取的信息较少,无法对日志中存在的问题进行准确定位。
发明内容
为了解决上述问题,本申请提供一种应用调度的分析方法及电子设备。该方法包括:电子设备以时间片为粒度,对应用在运行过程中的各函数的调用情况进行分析,以得到各时间片内的函数调用情况,并以图形的方式进行显示,从而使得操作人员可从图形中获取到更多的函数调用信息。
第一方面,本申请提供一种电子设备。该电子设备包括:一个或多个处理器、存储器和指纹传感器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:响应于接收到的第一用户操作,获取采集信息,采集信息用于指示按照目标采样频率与目标采样时长,对目标应用的函数调用事件进行采样;响应于接收到的第二用户操作,启动目标应用;根据采集信息,按照目标采样频率与目标采样时长,对目标应用的函数调用事件进行采样,得到采样结果,采样结果包括目标应用中的各函数在目标采样时长内的每个采样时刻的调用情况;在显示界面的第一显示窗口中显示采样结果的图形,采样结果的图形中包括多个子图形,每个子图形对应一个时间片,每个子图形用于表示在子图形对应的时间片内,目标应用中的至少一个函数的调用情况。这样,电子设备可基于用户指定的采样信息,对应用的各函数的调用情况进行采样,并以时间片为粒度,对采样的结果进行分析,以在显示界面中显示以时间片粒度进行划分的采样结果的图形。从而使得操作人员可以从分析结果图形中,获取到更多的细节信息,例如,能够获取到每个时间片内的各函数的调用情况。
示例性的,采集信息也可以称为采集参数,例如图5a中所示的,采集参数可以包括:任务类型、输出方式、事件清单、采样对象、采样时长、采样频率、输出路径等。
示例性的,采样结果的图形的大小可以是与第一显示窗口的大小相同,即,填满第一显示窗口。
示例性的,采样结果的图形可以包括时间轴,以表示所显示的采样结果所对应的采样时长。
示例性的,采样结果的图形可以是分批显示的,例如,电子设备可以每隔预定的时长,例如20s,显示依次采集到的采样结果所对应的图形。
示例性的,函数的调用情况也可以理解为函数的CPU占用情况。
示例性的,显示界面可以是浏览器应用的显示界面。
根据第一方面,子图形中包括一个或多个条状图形,每个条状图形对应目标应用的一个函数,条状图形的长度用于表示条状图形对应的函数在子图形对应的时间片内的运行时长。这样,操作人员可通过每个条状图形的长度,获取到每个条状图形对应的函数在时间片内的调用情况,例如,可以获取到函数在时间片内的运行时长。
示例性的,每个函数对应的图形也可以是其它形状,例如可以是圆角矩形。
根据第一方面,或者以上第一方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:在显示界面的第二显示窗口中显示采样结果参数;采样结果参数包括以下至少之一:函数在目标采样时长内的运行时长、函数在目标采样时长内的运行次数。这样,电子设备可通过文字显示的方式,以参数形式具体指示各函数的调用情况。
根据第一方面,或者以上第一方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:接收第三用户操作,第三用户操作指示将目标子图形在第一显示窗口中放大显示;目标子图形多个子图形;响应于接收到的第三用户操作,将目标子图形在第一显示窗口中放大显示。这样,电子设备可根据用户需求,对图形进行放大和缩小操作。
示例性的,第三用户操作可以是点击操作,例如用户可以对指定的时间片对应的时间轴点击,电子设备可显示采集时刻的起始时刻对应的时间片至用户指定的时间片之间的至少一个时间片进行放大。
示例性的,第三用户操作也可以是对图形的缩放操作。
根据第一方面,或者以上第一方面的任意一种实现方式,目标子图形对应第一时间片,目标子图形包括第一条状图形和第二条状图形,第一条状图形的长度用于指示第一函数在第一时间片内的运行时长,第二条状图形的长度用于指示第二函数在第一时间片内的运行时长。示例性的,目标子图形中可以包括第一条状图形、第二条状图形、第三条状图形等。
示例性的,每个条状图形的长度可以相同,也可以不同。
根据第一方面,或者以上第一方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:响应于接收到的第三用户操作,在第二显示窗口中显示第一函数在第一时间片内的运行时长和运行次数,以及,第二函数在第一时间片内的运行时长和运行次数。这样,第二显示窗口可以随着第一显示窗口中的图形的变化,显示对应的参数。
根据第一方面,或者以上第一方面的任意一种实现方式,第一条状图形与第二条状图形的颜色不相同。示例性的,不同的图形之间颜色不同,可以使得用户更容易区分不同的函数之间的关系。
示例性的,相邻的条状图形之间的颜色的差异较大,从而更好的区分不同的函数。
根据第一方面,或者以上第一方面的任意一种实现方式,第一条状图形中包括第一函数的标识信息,第二条状图形中包括第二函数的标识信息。示例性的,函数的标识信息可以为函数的名称。
根据第一方面,或者以上第一方面的任意一种实现方式,第一条状图形在第一显示窗口中的第一位置,第二条状图形在第一显示窗口中的第二位置,第一位置比第二位置更靠近第一显示窗口的上边缘,第一条状图形与第二条状图形的位置关系用于表示第一函数在第一时间片内先于第二函数被调用。示例性的,子图形中的各条状图形从上到下的顺序,可用于表示各函数的调用关系,即,各函数的调用顺序。其中,最上方的条状图形对应的函数即为最先被调用的函数。
根据第一方面,或者以上第一方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:响应于接收到的用户点击第一条状图形的操作,在第一显示窗口中显示函数信息框;函数信息框中包括以下至少之一:第一函数在目标采样时长内的运行时长,第一函数在目标采样时长内的运行次数,第一函数在第一时间片内的运行时长,第一函数在第一时间片内的运行次数,第一函数在第一时间片内的运行起始时间,第一函数在第一时间片内的运行结束时间。
示例性的,函数信息框可以是在条状图形之上显示,例如,部分覆盖条状图形。可选地,函数信息框也可以是在第一显示框中的任意位置显示。
根据第一方面,或者以上第一方面的任意一种实现方式,时间片的时长为100毫秒。这样,通过将采样结果以更小的粒度,例如100ms的粒度进行分析,以得到每100ms内的各函数的调用情况,从而使得操作人员可以获取到更详细的函数调用信息。
第二方面,本申请提供一种应用调用的分析方法。该方法包括:响应于接收到的第一用户操作,获取采集信息,采集信息用于指示按照目标采样频率与目标采样时长,对目标应用的函数调用事件进行采样;响应于接收到的第二用户操作,启动目标应用;根据采集信息,按照目标采样频率与目标采样时长,对目标应用的函数调用事件进行采样,得到采样结果,采样结果包括目标应用中的各函数在目标采样时长内的每个采样时刻的调用情况;在显示界面的第一显示窗口中显示采样结果的图形,采样结果的图形中包括多个子图形,每个子图形对应一个时间片,每个子图形用于表示在子图形对应的时间片内,目标应用中的至少一个函数的调用情况。
根据第二方面,子图形中包括一个或多个条状图形,每个条状图形对应目标应用的一个函数,条状图形的长度用于表示条状图形对应的函数在子图形对应的时间片内的运行时长。
根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:在显示界面的第二显示窗口中显示采样结果参数;采样结果参数包括以下至少之一:函数在目标采样时长内的运行时长、函数在目标采样时长内的运行次数。
根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:接收第三用户操作,第三用户操作指示将目标子图形在第一显示窗口中放大显示;目标子图形属于多个子图形;响应于接收到的第三用户操作,将目标子图形在第一显示窗口中放大显示。
根据第二方面,或者以上第二方面的任意一种实现方式,目标子图形对应第一时间片,目标子图形包括第一条状图形和第二条状图形,第一条状图形的长度用于指示第一函数在第一时间片内的运行时长,第二条状图形的长度用于指示第二函数在第一时间片内的运行时长。
根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:响应于接收到的第三用户操作,在第二显示窗口中显示第一函数在第一时间片内的运行时长和运行次数,以及,第二函数在第一时间片内的运行时长和运行次数。
根据第二方面,或者以上第二方面的任意一种实现方式,第一条状图形与第二条状图形的颜色不相同。
根据第二方面,或者以上第二方面的任意一种实现方式,第一条状图形中包括第一函数的标识信息,第二条状图形中包括第二函数的标识信息。
根据第二方面,或者以上第二方面的任意一种实现方式,第一条状图形在第一显示窗口中的第一位置,第二条状图形在第一显示窗口中的第二位置,第一位置比第二位置更靠近第一显示窗口的上边缘,第一条状图形与第二条状图形的位置关系用于表示第一函数在第一时间片内先于第二函数被调用。
根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:响应于接收到的用户点击第一条状图形的操作,在第一显示窗口中显示函数信息框;函数信息框中包括以下至少之一:第一函数在目标采样时长内的运行时长,第一函数在目标采样时长内的运行次数,第一函数在第一时间片内的运行时长,第一函数在第一时间片内的运行次数,第一函数在第一时间片内的运行起始时间,第一函数在第一时间片内的运行结束时间。
根据第二方面,或者以上第二方面的任意一种实现方式,时间片的时长为100毫秒。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第四方面,本申请提供了一种计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第五方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚、和该处理电路通过内部连接通路互相通信,该处理电路执行第二方面或第二方面的任一种可能的实现方式中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
附图说明
图1为示例性示出的电子设备的硬件结构示意图;
图2为示例性示出的电子设备的软件结构示意图;
图3为本申请实施例中提供的一种应用调用的分析方法的流程示意图;
图4为示例性示出的用户界面示意图;
图5a~图5c为示例性示出的用户界面示意图;
图6为示例性示出的用户界面示意图;
图7为示例性示出的用户界面示意图;
图8a为示例性示出的信息采集示意图;
图8b为示例性示出的日志分析示意图;
图9为示例性示出的模块交互示意图;
图10为示例性示出的分析结果视图示意图;
图11为示例性示出的分析结果视图示意图;
图12为示例性示出的分析结果视图示意图;
图13为示例性示出的分析结果视图示意图;
图14为示例性示出的分析结果视图示意图;
图15为示例性示出的信息采集示意图;
图16为示例性示出的内存调用事件分析示意图;
图17为示例性示出的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
图1示出了电子设备100的结构示意图。应该理解的是,图1所示电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。示例性的,本申请实施例中的电子设备可以是手机、平板、电脑、笔记本电脑等设备,本申请实施例中仅以手机为例进行说明,本申请不做限定。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。示例性的,在本申请实施例中,处理器110通过运行存储在内部存储器121的指令,使得电子设备100采集电子设备内部的日志,并对日志进行分析。以及,将分析结果显示在显示屏上。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息,分析等应用程序。示例性的,在本申请实施例中,分析应用可以执行日志采集、日志分析以及显示结果等操作。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
可以理解的是,图2示出的系统框架层、系统库与运行时层包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
图3为本申请实施例中提供的一种应用调用的分析方法的流程示意图。请参照图3,具体包括:
S101,采集模块接收用户操作。
示例性的,分析应用可选地包括采集模块、分析模块以及显示模块。采集模块可接收用户操作。图4为示例性示出的用户界面示意图。请参照图4,示例性的,显示界面401中包括一个或多个控件。控件包括但不限于:应用图标控件、电池电量控件、网络控件等。示例性的,应用图标控件中包括但不限于:视频应用图标控件、音乐应用图标控件、分析应用图标控件402等。用户点击分析应用图标控件402。请参照图5a,示例性的,手机响应于接收到的用户点击分析应用图标控件402的操作,显示分析应用界面501。分析应用界面501中包括但不限于:参数输入框502,运行选项503。
示例性的,参数输入框502中包括但不限于:任务类型输入框5021,输出方式输入框5022,事件清单输入框5023,采样对象输入框5025,采样时长输入框5027,采样频率输入框5028,输出路径输入框5029等。需要说明的是,本申请实施例中所示的各输入框的名称和数量仅为示意性举例,用户可根据实际需求进行设置,本申请不做限定。
仍参照图5a,示例性的,任务类型输入框5021中的信息用于指示本次分析任务的类型。例如,在本申请实施例中,任务类型为采样,也就是说,分析应用将以设定的参数,对采样对象,按照采样频率进行采样。本申请实施例中仅以采样任务类型为例进行说明,在其他实施例中,分析应用还可以执行其他类型的任务。
示例性的,输出方式输入框5022中的信息用于指示本次分析的输出方式。举例说明,在本申请实施例中,输出方式输入框5022中的信息为记录,相应的,在本次分析过程中,分析应用记录并显示本次结果。示例性的,在其他实施例中,输出方式还可以是报告等其他方式。示例性的,若输出方式为报告,手机可显示在本地分析并显示结果,并将分析结果以报告的方式输出至云端。可选地,手机也可以不显示结果,而是将分析结果以报告的方式上报至云端。
示例性的,事件清单输入框5023中的信息用于指示本次分析的事件。示例性的,事件清单输入框5023中包括选项按钮5023。用户可点击选项按钮5023,以选择对应的事件。请参照图5b,示例性的,手机响应于接收到的用户点击选项按钮5023的操作,显示事件清单列表5025。事件清单列表5025中包括一个或多个事件选项。事件选项包括但不限于:CPU时钟选项、内存调用选项以及I/O(Input/Output,输入输出)选项等。本申请实施例中所示的事件仅为示意性举例,在其他实施例中,可以包括更多或更少的事件选项,可根据实际需求设置,本申请不做限定。
示例性的,用户可点击CPU时钟选项,以指示本次分析是对采样对象的CPU时钟进行分析,也可以理解为是对采样对象的CPU占用情况进行分析。在其他实施例中,用户也可以点击其他选项,以对采样对象的其它事件进行分析,其过程与CPU时钟的分析过程类似,本申请实施例中仅以CPU时钟事件与内存调用事件为例进行说明,对于其他事件不再重复说明。
仍参照图5a,示例性的,采样对象输入框5025中的信息用于指示本次分析所针对的对象。可选地,采样对象输入框5025中包括选项按钮5026,用户点击选项按钮5026后,手机响应于接收到的用户操作,显示采样对象列表(图中未示出,可参照图5b中的事件清单列表)。示例性的,采样对象列表包括一个或多个应用选项。用户可从列表中选择一个或多个应用,以对选中的一个或多个应用进行日志分析。本申请实施例中,以用户选择采样对象为视频应用为例进行说明,本申请不做限定。
示例性的,采样时长输入框5027中的信息用于指示本次分析从开始时刻到截止时刻的时长。一个示例中,若用户点击采样时长输入框5027,手机响应于接收到的用户操作,可在显示界面上弹出软键盘,以使得用户可输入对应的采样时长。另一个示例中,采样时长输入框5027中可包括选项按钮(可参照选项按钮5024的描述)。若用户点击选项按钮,手机响应于接收到的用户操作,可显示采样时长列表。可选地,采样时长列表中可包括一个或多个预先设置的采样时长,例如可以包括:100s、300s、500s等,本申请不做限定。示例性的,本申请实施例中以采样时长为100s为例进行说明,即,分析应用对100s内的视频应用的CPU占用情况进行分析。
请继续参照图5a,示例性的,采样频率输入框5028中的信息用于指示本次分析过程中,对采样对象(例如视频应用)的事件(例如CPU时钟)的每秒钟的采样次数。可选地,本申请实施例中,采样频率可以为默认值。例如10000次/s。可选地,手机可提供输入键盘(描述可参照上文),以使得用户可以输入采样频率。可选地,手机还可以提供采样频率列表(与上文中各列表的描述类似,此处不再赘述),用户可从列表中选择采样频率。本申请实施例中以采样频率为10000次/s为例进行说明,本申请对此不做限定。
示例性的,输出路径输入框5029中的信息用于指示本次分析结果所输出的路径。可选地,输出路径可以是默认路径。可选地,输出路径可以是用户选择的路径,本申请不做限定。
需要说明的是,在本申请实施例中,任务类型与输出方式均为默认设置的。也就是说,当用户触发分析应用后,任务类型输入框5021中的信息默认设置为采样,输出方式输入框5022中的信息默认设置为记录。在其他实施例中,若任务类型与输出方式有其他可选地选项,相应的,任务类型输入框与输出方式输入框中可以包括选项按钮,以使得用户可从相应的列表中选择任务类型或输出方式。
请参照图5c,示例性的,各参数设置完成后,用户可点击运行选项503。手机接收用户点击运行选项503的操作,采集模块可按照设置的参数进行信息的采集。
请参照图6,示例性的,显示界面601中包括但不限于一个或多个控件,例如包括视频应用图标控件602。如上文所述,本次分析的采集对象为视频应用,相应的,用户可点击视频应用图标控件602,以启动视频应用。如图7所示,手机响应于接收到的用户操作,启动视频应用,显示视频应用的显示界面。
示例性的,视频应用启动后,分析应用(例如采集模块)可根据设置的参数对视频应用进行信息采集。示例性的,其分析起始时刻,即为视频应用启动的时刻。可选地,在其他实施例中,用户也可以先启动视频应用,然后再运行分析应用。相应的,分析应用对视频应用分析的起始时刻,即为用户点击运行按钮503的时刻。
S102,采集模块基于设置参数,写入日志。
示例性的,采集模块响应于接收到的用户操作,获取用户设置的各参数,并基于设置的参数采集相应信息,以及,将采集到的信息写入日志。
举例说明,以图5c中的参数设置为例。采集模块以10000次/s的采样频率,对视频应用的CPU时钟进行统计。图8a为示例性示出的信息采集示意图。请参照图8a,示例性的,在本申请实施例中,视频应用中的各函数在调用过程中会写入调用栈(也可以称为任务栈、CPU调用栈、CPU栈等)。
可选地,调用栈中包括一个或多个函数的标识信息。可选地,调用栈中的栈顶函数可选地为当前时刻视频应用最后一次(最新一次)调用的函数。如果视频应用调用另一个函数,则栈顶函数从调用栈的栈顶顺序下移。示例性的,调用栈采用先入先出原则。在栈顶函数逐渐下移至栈底后,如果视频应用调用新的函数,则新的函数进入调用栈顶,作为栈顶函数,原栈底函数移出调用栈。示例性的,如果视频应用再次调用调用栈中非栈顶函数的任一函数,则被调用的函数回到栈顶,原栈顶函数从调用栈的栈顶顺序下移。调用栈中的顺序,可以用于指示函数的调用关系及调用顺序。需要说明的是,调用栈的调用方式可参照已有技术实施例中的相关描述,上文中仅为简要说明。
仍参照图8a,示例性的,采集模块按照采样频率(10000次/s),在每个采样时刻,采集视频应用的调用栈。例如,在第1次采样时刻,采集模块获取视频应用在当前时刻的调用栈。调用栈中的栈底函数为函数1,栈顶函数为函数8,调用栈中还包括一个或多个其它函数,例如包括但不限于:函数2~函数5、函数7等。需要说明的是,本申请实施例中的函数的标识信息以及调用栈中的函数数量仅为示意性举例,本申请不做限定。
示例性的,在第2次采样时刻,采集模块获取视频应用在当前时刻的调用栈。可选地,当前时刻的调用栈中的栈底函数仍然为函数1,栈顶函数为函数8。也就是说,在第2次采样时刻,视频应用的函数调用与第1次采样时刻时没有变化,可以理解为,第2次采样时刻之前最后一次调用的函数仍是函数8。
需要说明的是,本申请实施例中以第1次采样时刻与第2次采样时刻的调用栈相同为例说明。在其他实施例中,相邻采样时刻所采集的调用栈中的函数可以相同或不同,本申请不做限定。
进一步需要说明的是,结合图8a可以看出,采集频率的设置需要考虑是否可以覆盖函数的每次调用。举例说明,若采集频率过小,即,采集的间隔过大,函数1在第1次采样时刻与第2次采样时刻之间调用,并且在第2次采样时刻到达之前,函数1已经被移出调用栈。则在该情况下,采集模块采集到的信息将不会包括函数1,也就是说分析模块最后得到的分析结果中,不显示函数1的相关信息,这样会造成分析结果的信息缺失。
示例性的,在采集频率适当(例如在设定的范围内,具体范围可根据实际需求设置,本申请不做限定)的情况下,若函数1在第1次采样时刻与第2次采样时刻之间被调用,但是,由于第1次采样时刻与第2次采样时刻之间的间隔适当,在第2次采样时刻,函数1仍然在调用栈中(可能是在调用栈中的栈顶,也可以是在栈中,本申请不做限定),则采集模块仍然能够采集到函数1的调用情况。示例性的,若采集频率过大,则会造成系统负担过重。本申请实施例中以10000次/s为例进行说明,其是为试验获得的最佳采集频率。
示例性的,采集模块可参照上述方式,在每次采样时刻对调用栈进行采集,直至第n次采样后,到达采样时长,例如100s。
示例性的,在本申请实施例中,采集模块可将每个时刻采集到的信息写入图5a中设置的输出路径中的日志文件。可选地,如图8a所示,在本申请实施例中,采集模块可以按照设定的周期(例如10s,可根据实际需求设置,本申请不做限定),向日志中写入本周期内采集到的信息。相应的,采集模块可在每次写入新的采集信息后,执行S103,即指示分析模块对当前周期内的新的采集信息进行分析。也就是说,分析模块可在每次采集模块指示后,对日志中的新的信息(即本周期内的信息)进行分析。可选地,采集模块也可以在采集时长(例如100s)结束后,再指示分析模块对日志进行分析,其中,在该示例中,日志中记录的即为采集时长内采集到的所有信息。
S103,采集模块向分析模块发送日志。
示例性的,如上文所述,采集模块可以周期性地指示分析模块对日志进行分析。可选地,采集模块也可以在本次采集结束后,即,到达采集时长(例如100s)后,指示分析模块对日志进行分析。本申请不做限定。
示例性的,采集模块可以向分析模块输出日志。示例性的,采集模块还可以是向分析模块发送指示信息,以指示分析模块到指定目录中,获取日志文件中的信息。
S104,分析模块按照时间切片,对日志进行分析,得到分析结果。
示例性的,本申请实施例中,分析模块中可预先设置时间切片。分析模块可根据设置的时间切片,对日志中的信息进行统计。可以理解为,采集模块将一定时长内(例如采集时长,或者是上文所述的周期时长)的函数调用情况(例如CPU占用情况),按照更小的粒度,即以时间切片为粒度,对采集到的信息进行划分。
示例性的,时间切片的长度可选地为各应用中的大多数(例如80%)的函数的调用时长的中位数。当然,切片时长的取值方式仅为示意性举例,操作人员可根据实际需求设置,本申请不做限定。可选地,本申请实施例中以切片时长相等为例进行说明。在其他实施例中,各切片时长可以不相同。
图8b为示例性示出的日志分析示意图。请参照图8b,示例性的,分析模块可从日志中获取到采集模块采集到的信息,信息包括但不限于每个采样时刻采集到的调用栈中的各函数的调用顺序以及各函数的标识信息。
本申请实施例中以时间切片为100ms为例进行说明。当然,该数值仅为示意性举例,本申请不做限定。示例性的,分析模块按照100ms为粒度,统计每100ms内的函数调用情况。
仍参照图8b,示例性的,以第1次采样时刻至第10次采样时刻之间的间隔为100ms为例进行说明。分析模块可统计第1次采样时刻至第10次采样时刻之间的每次采样所获取到的调用栈,以及每个调用栈中的函数的调用顺序和函数的标识信息,以获取各函数在100ms内的调用时长和在100ms内的调用关系。例如,以函数1为例,可选地,采样间隔为0.01s,即每0.01s采样一次。分析模块获取到在第1次采样时刻,函数1被调用,并且,其第2次至第8次采样时刻,函数1均被调用,并且位于栈底。相应的,采集模块可分析出函数1在100ms内的CPU占用时长为0.08s,并且调用次数为8次,并且,采集模块还可以获取到函数的开始时刻与结束时刻。需要说明的是,如上文所述,函数可能是在两个采集时刻之间被调用的,相应的,采集模块在下一次采集时刻,才能采集到函数的相关信息。因此,分析模块获取到的函数的开始时刻,即为下一次采集时刻对应的时间。也可以理解为,函数的实际开始时刻与分析模块获取到的开始时刻之间可能是存在误差的。可选地,如上文所述,采集时刻之间的间隔是在设定的范围内的,因此,函数的实际开始时刻与分析模块获取到的开始时刻之间的误差(可能小于0.01s)对分析结果影响较小,可忽略不计。
示例性的,采集模块还可以可按照上文所述的按照时间切片的分析方式,对日志中的信息进行全局统计。例如,采集模块可统计当前日志中记录的每个函数的总运行次数,以及调用时长等信息。其统计方式与上文中时间片内的统计方式类似,此处不再赘述。需要说明的是,如上文所述,采集模块可选地周期性地指示采集模块对日志进行分析,例如,周期时长为10s。则,分析模块每隔10s,从日志中获取日志中记录的信息,并对当前日志中的信息进行分析。也就是说,若采集模块在第3个周期(即第30s)指示分析模块进行分析,则分析模块对日志中记录的30s内的信息进行分析,并得到分析结果,例如包括各函数在30s内的运行时长与运行次数,以及,30s内的多个时间片内的各函数的运行时长和调用次数等信息。
S105,分析模块向显示模块发送分析结果。
示例性的,如上文所述,分析模块可获取到每个时间片内的各函数的CPU调用情况(包括运行时长、运行次数等信息),以及当前采集时长内的各函数的总体CPU调用情况。
示例性的,如上文所述,分析模块可周期性地对日志进行分析。相应的,分析模块可周期性地向显示模块发送分析结果。示例性的,分析模块也可以在采集模块完成本次采集时长(例如100s)的采集,并对日志进行分析后,再将分析结果发送至显示模块。本申请不做限定。
S106,显示模块生成并显示分析结果视图。
示例性的,显示模块响应于分析模块输入的分析结果,可根据分析结果生成分析结果视图,并在显示界面中显示分析结果视图。可选地,分析结果视图可以是svg(ScalableVector Graphics,可缩放的矢量图形)格式。在其他实施例中,也可以生成其他格式的视图,本申请不做限定。
示例性的,显示模块生成分析结果视图后,可自动调用手机中的浏览器,并在浏览器中显示分析结果视图。示例性的,显示模块也可以在分析应用的显示界面中显示分析结果视图。示例性的,显示模块还可以将生成的分析结果视图存储在指定目录中,当用户触发浏览器,并从浏览器中选择打开指定目录中的分析结果视图后,显示模块可响应于浏览器的调用,在浏览器的显示界面中显示分析结果视图。
图10为示例性示出的分析结果视图示意图。请参照图10,示例性的,分析结果视图中包括分析结果显示窗口1001以及分析结果列表1002。示例性的,分析结果显示窗口1001中包括分析模块输入的每个时间切片的分析结果。
举例说明,仍参照图10,如上文所述,分析模块可以周期性地向显示模块输入分析结果,以分析模块在采集时长的第20s,向显示模块输入20s内的分析结果为例进行说明。显示模块可显示20s内的分析结果。例如,20s内包括200个时间切片。以0~0.1s的时间切片为例。显示模块接收到分析模块输入的分析结果,可获取到0~0.1s内,各函数的开始时间、结束时间、运行时长、调用关系以及运行次数等信息。相应的,显示模块可基于各函数的信息,绘制时间片内的图形。图形的具体描述可参照图12,此处不再赘述。
示例性的,本申请实施例中所述的各函数之间的调用关系即为各函数的调用顺序,其描述可参照上文中调用栈的描述。也就是说,0~0.1s内的分析结果视图可以理解为0~0.1s内的每次采样时刻采集的调用栈合并后的结果。
需要说明的是,本申请实施例中,视频应用在运行过程中,其可以并发运行多个进程。其中,每个进程可以调用一个或多个函数。示例性的,图10中的分析结果视图显示窗口1001中可用于显示视频应用的其中一个进程的各函数的CPU占用情况。可选地,视频应用的其他进程中的每个进程可对应一个分析结果视图显示窗口。分析结果视图显示窗口可显示对应的进程中的各函数的CPU占用情况图形。可选地,多个进程对应的分析结果视图显示窗口可以以叠加的方式在浏览器的窗口中显示。可选地,多个进程对应的分析结果视图显示窗口可以并排(可以竖排,也可以横排)在浏览器的窗口中显示。本申请不做限定。
请继续按照图10,示例性的,分析结果列表1002中用于显示指定时长内的各函数的运行时长、运行次数等信息。例如,当前分析结果显示窗口1001中显示的时间轴上的时长为20s。则,分析结果列表中显示的为20s内的各函数的运行时长以及运行次数等信息。需要说明的是,本申请实施例中所示的各函数的运行时长、运行参数等参数仅为示意性举例,本申请不做限定。
示例性的,图10中分析结果显示窗口1001中的省略号用于指示0.3s~20s内还包括多个时间片所对应的图形。可选地,在本申请实施例中,显示模块可以将20s内的所有时间片对应的图形都在分析结果显示窗口1001中显示,其显示方式可以是将各时间片对应的图形按比例缩小。示例性的,当时间轴上的时长过大(例如图10中的20s)时,分析结果图像1001中显示的图形中包括的信息量较大,用户若想获取到更详细的信息,用户可选择其中一个或多个时间片。例如,图10所示,用户可点击0.3s,以放大显示0~0.3s内的3个时间片的图形。
请参照图11,示例性的,显示模块响应于接收到的用户操作,将0~0.3s内的分析结果图形放大显示。示例性的,显示模块在分析结果显示窗口1001中显示0~0.3的分析结果对应的图形。例如,分析结果显示窗口1001中显示的是0~0.1s的时间切片对应的图形,0.1s~0.2s的时间切片对应的图形,以及,0.2s~0.3s的时间切片对应的图形。相应的,分析结果列表1002中可选地显示0~0.3s内,各函数的运行时长以及运行次数等参数。
请继续参照图11,示例性的,用户可使用放大手势,在0~0.1s时间切片中滑动,以放大0~0.1s时间切片。需要说明的是,本申请实施例中以手机为例,用户可使用图11中所示的手势对切片进行放大。在其他实施例种,用户也可以采用其他手势对指定的时间切片进行放大显示。可选地,若电子设备为电脑,则用户可通过鼠标操作将指定的时间切片进行放大显示,本申请不做限定。
示例性的,请参照图12,显示模块响应于接收到的用户操作,在分析结果显示窗口1001中将0~0.1s的时间切片的图像放大显示。示例性的,分析结果显示窗口1001中的时间轴的粒度可逐渐多小至毫秒级。例如,可选地以10ms为粒度显示各函数之间的调用关系。
请继续参照图12,示例性的,分析结果显示窗口1001中显示的100ms的时间切片的图像,即为采集模块在100ms内的每个采集时刻,采集到的调用栈的结果。示例性的,分析结果显示窗口1001中的图形可以在每个函数对应的图形上标记函数的标识信息。可选地,在图10~图11中,图形中同样可标记函数的标识信息。本申请不做限定。
可选地,在本申请实施例中,为区分不同的函数,不同函数之间的背景色可以不同。本申请不做限定。可选地,在本申请实施例中,以每个函数对应的图形的形状为条状图形(即矩形)举例进行说明。在其他实施例中,每个函数对应的图形也可以是圆角矩形、三角形等图形,本申请不做限定。
示例性的,以图12中的函数1为例。图12中的函数1的图形的长度(例如100ms),即为函数1在100ms时间切片内的运行时长,也可以理解为是函数1在100ms时间切片内的CPU占用时长。如上文所述,显示模块显示的各函数的图形,实际上就是采集模块在每个采集时刻采集的调用栈合并的结果。也就是说,函数1对应的图形可以理解为是10ms、20ms、30ms、40ms……100ms时刻采集到的调用栈的合并结果。需要说明的是,如上文中的图8b所示,采集模块获取到的调用栈是从栈顶到栈底,以表示函数的调用顺序。在图12中,其所显示的图形中各函数的调用关系是与调用栈相反的。也就是说,函数1是在分析结果显示窗口1001中的最上方显示的函数,其在调用栈中的位置可选地为最底层,即为栈底函数。可以理解为,函数1为最先调用的函数。基于图12所示的图形,操作人员可从图形上获取到各函数的调用顺序、运行时长(即CPU占用时长)、运行次数(即函数被调用的次数)、开始时刻以及结束时刻等信息。
举例说明的,在图12中,操作人员可从图形中获取到函数1为最先调用的函数,其运行时长占满整个时间片,即为100ms。在函数1之后,视频应用调用函数2,并且函数2的运行时长几乎占满整个时间片。在函数2之后,视频应用依次调用函数3、函数6、函数8、函数9、函数10以及函数4和函数5。操作人员可从图形中获取到各函数的CPU耗时占比的大致情况。例如,操作人员可从图形上获取到,函数1与函数2在时间片100ms内的CPU耗时占比最大,函数10的CPU耗时占比最小。也就是说,图12中通过显示具体的时间片内的各函数的信息,可使得操作人员从图形中获取到的更多的信息,以进行后续的分析。
示例性的,分析结果列表1002中可基于当前分析结果显示窗口1001中的内容,显示0~0.1s时间片内各函数的运行时长、运行次数等参数。
示例性的,请参照图13,用户还可以点击其中的任一函数,以查看函数的具体参数。举例说明,用户点击函数8。显示模块响应于接收到的用户点击操作,显示函数信息框1003。示例性的,函数信息框1003中包括但不限于:函数8的总运行时长(例如200ms),总运行次数(例如500次),函数8在时间片内的运行时长(例如22ms),函数8在时间片内的运行次数(例如1次),函数8在时间片内的开始时间(例如13ms),以及函数8在时间片内的结束时间(例如35ms)等。需要说明的是,上述参数仅为示意性举例,本申请不做限定。
请参照图14,示例性的,图形中还可以包括一个或多个调用符号,例如调用符号1004。示例性的,调用符号1004可用于指示函数的调用关系。举例说明,如上文所述,各函数可对应不同的背景色。示例性能给的,调用符号1004的颜色可以与函数5的背景色一致,以用于指示函数5的调用关系。如上文所述,视频应用在运行过程中,可运行多个进程。相应的,同一个函数可能被一个或多个进程调用。示例性的,调用符号1004即用于指示函数5被另一个进程调用。可选地,若用户点击调用符号1004,则调用函数5的进程对应的分析结果显示窗口将函数5高亮显示,以指示函数5在本进程内的运行情况。
在一种可能的实现方式中,如图5b中所示,事件清单可以包括CPU时钟、内存调用、I/O等事件。上文中以CPU时钟为例进行说明,下面以具体示例对事件清单为内存调用进行说明。需要说明的是,其他事件类型例如I/O等,其分析方式可参照CPU时钟与内存调用,本申请不再重复说明。示例性的,用户可点击内存调用,以及运行选项。需要说明的是,其他参数仍以CPU时钟分析过程中的参数相同为例,具体设置方式可参照图5b的相关描述,此处不再赘述。示例性的,采集模块可基于设定的参数,采集视频应用运行时,各函数对内存的调用信息。
示例性的,采集模块以10000次/s的采样频率,对视频应用的内存调用进行统计。图15为示例性示出的信息采集示意图。请参照图15,示例性的,在本申请实施例中,视频应用中的各函数在调用过程中会写入调用栈。示例性的,为区别于图8a中的调用中,图15中的可以称为内存调用栈,其中,与CPU调用栈类似,内存调用栈可用于指示函数的调用顺序,示例性的,内存调用栈还可以用于指示各函数调用内存的大小。
可选地,调用栈中包括一个或多个函数的标识信息与对应的内存调用大小。举例说明,函数1被调用过程中,函数1位于栈顶,即为栈顶函数。内存调用栈中可标识函数1申请的内存大小,例如为2MB。在下一次采集时刻,函数2倍调用,函数2为栈顶函数,函数1在内存调用栈中下移。示例性的,函数2申请20MB大小的内存。
需要说明的是,在本申请实施例中,内存调用栈中也可以只记录函数的调用关系,即,只包括各函数的标识信息。采集模块可以在每次采集时刻,基于内存调用栈中的函数的标识信息,获取各函数的内存调用情况。本申请不做限定。
仍参照图15,示例性的,采集模块按照采样频率(10000次/s),以固定间隔获取每个采样时刻视频应用的内存调用栈。例如,在第1次采样时刻,采集模块获取视频应用在当前时刻的内存调用栈。调用栈中的栈底函数为函数1,其已申请的内存大小为100kB。栈顶函数为函数8,申请的内存大小为100kB,调用栈中还包括一个或多个其它函数,例如包括但不限于:函数5、函数7等。需要说明的是,本申请实施例中的函数的标识信息与申请的内存大小仅为示意性举例,本申请不做限定。需要说明的是,内存是存在申请与释放的。本申请实施例中仅以内存的申请为例进行说明。也就是说,本次分析统计的是各函数申请的内存情况。当然,内存的释放情况的分析方式与内存的申请情况的分析方式是类似的,本申请不再重复说明。
示例性的,在第2次采样时刻,采集模块获取视频应用在当前时刻的内存调用栈。可选地,当前时刻的调用栈中的栈底函数仍然为函数1,其已申请的内存大小为100kB,也可以理解为,函数1到当前时刻位置,只申请过一次内存,申请的内存大小为100kB。栈顶函数为函数8,已申请的内存大小为100kB。也就是说,在第2次采样时刻,视频应用的函数调用与第1次采样时刻时没有变化,可以理解为,第2次采样时刻之前最后一次调用的函数仍是函数8,并且其申请的内存仍为100kB,并没有申请新的内存。
需要说明的是,本申请实施例中以第1次采样时刻与第2次采样时刻的调用栈相同为例说明。在其他实施例中,相邻采样时刻所采集的调用栈中的函数可以相同或不同,本申请不做限定。
示例性的,采集模块可将采集到的信息(包括函数的开始时刻、结束时刻、调用关系、申请的内存大小)写入日志,并将日志输出至分析模块。具体描述可参照上文,此处不再赘述。
示例性的,分析模块可对采集模块输入的日志进行分析。与CPU时钟事件的分析过程类似,分析模块可将采集模块每次采集到的信息,按照时间切片(例如100ms)为粒度进行合并。例如,对0~0.1s内采集到的各函数的调用关系,申请内存情况进行统计,以获取0~0.1s时间切片内的各函数的调用顺序、各函数的内存调用大小、内存调用次数等信息。例如,以函数1为例,可选地,采样间隔为0.01s,即每0.01s采样一次。分析模块获取到在第1次采样时刻,函数1被调用,且申请的内存大小为100kB。相应的,采集模块可分析出函数1在100ms内的内存占用大小为100kB,申请次数为1次。未描述部分可参照图8b的相关内容,此处不再赘述。
图16为示例性示出的内存调用事件分析示意图。示例性的,图16中仅示出一个时间片,例如0~0.1s内的各函数的内存调用情况,全局的内存调用图形可参照图10,此处不再赘述。请参照图16,示例性的,显示模块在分析结果显示窗口1601中显示0~0.1s时间切片内,内存调用分析结果对应的图形。示例性的,每个函数的长度用于指示函数的调用时长,从图上可以看出,其分析显示结果与CPU调用栈类似,均是反映各函数在时序上的调用关系。
示例性的,分析结果列表1602中用于显示各函数的内存调用的具体信息,例如可以包括但不限于:函数的申请内存的大小、申请内存的次数等。示例性的,用户可点击分析结果显示窗口1601中的图形的任一函数,显示模块可响应于用户点击操作,显示函数信息框(可参照图13中的函数信息框1003),函数信息框中可包括该函数的内存调用的具体信息,例如可以包括内存调用起始时间,申请内存的结束时间(也可以理解为内存释放时间),申请内存的大小,申请内存的次数等信息。未描述部分可参照CPU时钟事件分析的相关描述,此处不再赘述。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
一个示例中,图17示出了本申请实施例的一种装置1700的示意性框图装置1700可包括:处理器1701和收发器/收发管脚1702,可选地,还包括存储器1703。
装置1700的各个组件通过总线1704耦合在一起,其中总线1704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线1704。
可选地,存储器1703可以用于前述方法实施例中的指令。该处理器1701可用于执行存储器1703中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置1700可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。s
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (21)
1.一种电子设备,其特征在于,包括:
一个或多个处理器、存储器和指纹传感器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
响应于接收到的第一用户操作,获取采集信息,所述采集信息用于指示按照目标采样频率与目标采样时长,对目标应用的函数调用事件进行采样;
响应于接收到的第二用户操作,启动所述目标应用;
根据所述采集信息,按照所述目标采样频率与所述目标采样时长,对所述目标应用的所述函数调用事件进行采样,得到采样结果,所述采样结果包括所述目标应用中的各函数在所述目标采样时长内的每个采样时刻的调用情况;
在显示界面的第一显示窗口中显示所述采样结果的图形,所述采样结果的图形中包括多个子图形,每个所述子图形对应一个时间片,每个所述子图形用于表示在所述子图形对应的时间片内,所述目标应用中的至少一个函数的调用情况,所述子图形中包括一个或多个条状图形,每个所述条状图形对应所述目标应用的一个函数,所述条状图形的长度用于表示所述条状图形对应的函数在所述子图形对应的时间片内的运行时长,所述子图形中的所述一个或多个条状图形从上到下的顺序用于表示所述至少一个函数的调用顺序,所述时间片的长度为所述目标应用中预设数量个函数的调用时长的中位数。
2.根据权利要求1所述的电子设备,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
在所述显示界面的第二显示窗口中显示采样结果参数;
所述采样结果参数包括以下至少之一:
函数在所述目标采样时长内的运行时长、函数在所述目标采样时长内的运行次数。
3.根据权利要求2所述的电子设备,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
接收第三用户操作,所述第三用户操作指示将目标子图形在所述第一显示窗口中放大显示;所述目标子图形属于所述多个子图形;
响应于接收到的所述第三用户操作,将所述目标子图形在所述第一显示窗口中放大显示。
4.根据权利要求3所述的电子设备,其特征在于,所述目标子图形对应第一时间片,所述目标子图形包括第一条状图形和第二条状图形,所述第一条状图形的长度用于指示第一函数在所述第一时间片内的运行时长,所述第二条状图形的长度用于指示第二函数在所述第一时间片内的运行时长。
5.根据权利要求4所述的电子设备,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
响应于接收到的所述第三用户操作,在所述第二显示窗口中显示所述第一函数在所述第一时间片内的运行时长和运行次数,以及,所述第二函数在所述第一时间片内的运行时长和运行次数。
6.根据权利要求4所述的电子设备,其特征在于,所述第一条状图形与所述第二条状图形的颜色不相同。
7.根据权利要求4所述的电子设备,其特征在于,所述第一条状图形中包括所述第一函数的标识信息,所述第二条状图形中包括所述第二函数的标识信息。
8.根据权利要求4所述的电子设备,其特征在于,所述第一条状图形在所述第一显示窗口中的第一位置,所述第二条状图形在所述第一显示窗口中的第二位置,所述第一位置比所述第二位置更靠近所述第一显示窗口的上边缘,所述第一条状图形与所述第二条状图形的位置关系用于表示所述第一函数在所述第一时间片内先于所述第二函数被调用。
9.根据权利要求4所述的电子设备,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
响应于接收到的所述用户点击所述第一条状图形的操作,在所述第一显示窗口中显示函数信息框;所述函数信息框中包括以下至少之一:
所述第一函数在所述目标采样时长内的运行时长,所述第一函数在所述目标采样时长内的运行次数,所述第一函数在所述第一时间片内的运行时长,所述第一函数在所述第一时间片内的运行次数,所述第一函数在所述第一时间片内的运行起始时间,所述第一函数在所述第一时间片内的运行结束时间。
10.根据权利要求1所述的电子设备,其特征在于,所述时间片的时长为100毫秒。
11.一种应用调用的分析方法,其特征在于,包括:
响应于接收到的第一用户操作,获取采集信息,所述采集信息用于指示按照目标采样频率与目标采样时长,对目标应用的函数调用事件进行采样;
响应于接收到的第二用户操作,启动所述目标应用;
根据所述采集信息,按照所述目标采样频率与所述目标采样时长,对所述目标应用的所述函数调用事件进行采样,得到采样结果,所述采样结果包括所述目标应用中的各函数在所述目标采样时长内的每个采样时刻的调用情况;
在显示界面的第一显示窗口中显示所述采样结果的图形,所述采样结果的图形中包括多个子图形,每个所述子图形对应一个时间片,每个所述子图形用于表示在所述子图形对应的时间片内,所述目标应用中的至少一个函数的调用情况,所述子图形中包括一个或多个条状图形,每个所述条状图形对应所述目标应用的一个函数,所述条状图形的长度用于表示所述条状图形对应的函数在所述子图形对应的时间片内的运行时长,所述子图形中的所述一个或多个条状图形从上到下的顺序用于表示所述至少一个函数的调用顺序,所述时间片的长度为所述目标应用中预设数量个函数的调用时长的中位数。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述显示界面的第二显示窗口中显示采样结果参数;
所述采样结果参数包括以下至少之一:
函数在所述目标采样时长内的运行时长、函数在所述目标采样时长内的运行次数。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
接收第三用户操作,所述第三用户操作指示将目标子图形在所述第一显示窗口中放大显示;所述目标子图形属于所述多个子图形;
响应于接收到的所述第三用户操作,将所述目标子图形在所述第一显示窗口中放大显示。
14.根据权利要求13所述的方法,其特征在于,所述目标子图形对应第一时间片,所述目标子图形包括第一条状图形和第二条状图形,所述第一条状图形的长度用于指示第一函数在所述第一时间片内的运行时长,所述第二条状图形的长度用于指示第二函数在所述第一时间片内的运行时长。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
响应于接收到的所述第三用户操作,在所述第二显示窗口中显示所述第一函数在所述第一时间片内的运行时长和运行次数,以及,所述第二函数在所述第一时间片内的运行时长和运行次数。
16.根据权利要求14所述的方法,其特征在于,所述第一条状图形与所述第二条状图形的颜色不相同。
17.根据权利要求14所述的方法,其特征在于,所述第一条状图形中包括所述第一函数的标识信息,所述第二条状图形中包括所述第二函数的标识信息。
18.根据权利要求14所述的方法,其特征在于,所述第一条状图形在所述第一显示窗口中的第一位置,所述第二条状图形在所述第一显示窗口中的第二位置,所述第一位置比所述第二位置更靠近所述第一显示窗口的上边缘,所述第一条状图形与所述第二条状图形的位置关系用于表示所述第一函数在所述第一时间片内先于所述第二函数被调用。
19.根据权利要求14所述的方法,其特征在于,所述方法还包括:
响应于接收到的所述用户点击所述第一条状图形的操作,在所述第一显示窗口中显示函数信息框;所述函数信息框中包括以下至少之一:
所述第一函数在所述目标采样时长内的运行时长,所述第一函数在所述目标采样时长内的运行次数,所述第一函数在所述第一时间片内的运行时长,所述第一函数在所述第一时间片内的运行次数,所述第一函数在所述第一时间片内的运行起始时间,所述第一函数在所述第一时间片内的运行结束时间。
20.根据权利要求11所述的方法,其特征在于,所述时间片的时长为100毫秒。
21.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求11-20中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911766.5A CN113934475B (zh) | 2021-08-10 | 2021-08-10 | 应用调用的分析方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911766.5A CN113934475B (zh) | 2021-08-10 | 2021-08-10 | 应用调用的分析方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113934475A CN113934475A (zh) | 2022-01-14 |
CN113934475B true CN113934475B (zh) | 2022-09-06 |
Family
ID=79274354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110911766.5A Active CN113934475B (zh) | 2021-08-10 | 2021-08-10 | 应用调用的分析方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934475B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876938A (zh) * | 2009-11-11 | 2010-11-03 | 北京神州泰岳软件股份有限公司 | 一种基于消息队列的应用软件响应时间测量方法 |
EP2390790A1 (en) * | 2010-05-27 | 2011-11-30 | Fujitsu Limited | Profiling of software applications |
CN102460408A (zh) * | 2009-06-01 | 2012-05-16 | 惠普开发有限公司 | 用于收集应用性能数据的系统和方法 |
CN110457277A (zh) * | 2019-08-19 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 业务处理性能分析方法、装置、设备及存储介质 |
CN112052073A (zh) * | 2020-09-18 | 2020-12-08 | 网易(杭州)网络有限公司 | 脚本性能分析方法及装置、可读存储介质及电子设备 |
CN112199261A (zh) * | 2019-07-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 应用程序性能分析方法及装置、电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730460B1 (en) * | 2004-06-18 | 2010-06-01 | Apple Inc. | Code execution visualization using software fingerprinting |
CN102609351B (zh) * | 2012-01-11 | 2015-12-02 | 华为技术有限公司 | 用于分析系统的性能的方法、设备和系统 |
WO2018045545A1 (en) * | 2016-09-09 | 2018-03-15 | Microsoft Technology Licensing, Llc | Automated performance debugging of production applications |
US10248547B2 (en) * | 2017-04-18 | 2019-04-02 | Sap Se | Coverage of call graphs based on paths and sequences |
CN110389872B (zh) * | 2018-04-16 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 一种数据采集方法、装置以及相关设备 |
CN110928739B (zh) * | 2018-09-19 | 2024-03-26 | 阿里巴巴集团控股有限公司 | 一种进程监控方法、装置以及计算设备 |
CN110618933B (zh) * | 2019-08-15 | 2021-05-11 | 华为技术有限公司 | 性能分析方法与系统、电子设备与存储介质 |
CN110825649A (zh) * | 2019-11-26 | 2020-02-21 | 京东数字科技控股有限公司 | 应用测试方法、装置、设备及存储介质 |
-
2021
- 2021-08-10 CN CN202110911766.5A patent/CN113934475B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102460408A (zh) * | 2009-06-01 | 2012-05-16 | 惠普开发有限公司 | 用于收集应用性能数据的系统和方法 |
CN101876938A (zh) * | 2009-11-11 | 2010-11-03 | 北京神州泰岳软件股份有限公司 | 一种基于消息队列的应用软件响应时间测量方法 |
EP2390790A1 (en) * | 2010-05-27 | 2011-11-30 | Fujitsu Limited | Profiling of software applications |
CN112199261A (zh) * | 2019-07-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 应用程序性能分析方法及装置、电子设备 |
CN110457277A (zh) * | 2019-08-19 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 业务处理性能分析方法、装置、设备及存储介质 |
CN112052073A (zh) * | 2020-09-18 | 2020-12-08 | 网易(杭州)网络有限公司 | 脚本性能分析方法及装置、可读存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
Android App Performance Detection Framework Based on Dynamic Analysis of Function Call Graphs;Jianing Zhang等;《Proceedings of the 2019 The World Symposium on Software Engineering》;20190920;1-5 * |
如何读懂火焰图?;阮一峰;《https://www.ruanyifeng.com/blog/2017/09/flame-graph.html》;20170926;1-9 * |
嵌入式软件性能分析方法研究与工具设计;张惠臻等;《计算机应用与软件》;20131015;284-287 * |
Also Published As
Publication number | Publication date |
---|---|
CN113934475A (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351422B (zh) | 一种通知消息的预览方法、电子设备及相关产品 | |
CN110231905B (zh) | 一种截屏方法及电子设备 | |
CN112130742B (zh) | 一种移动终端的全屏显示方法及设备 | |
WO2021036571A1 (zh) | 一种桌面的编辑方法及电子设备 | |
WO2021000881A1 (zh) | 一种分屏方法及电子设备 | |
CN110362244B (zh) | 一种分屏方法及电子设备 | |
CN109274828B (zh) | 一种生成截图的方法、控制方法及电子设备 | |
CN114461111B (zh) | 启动功能的方法及电子设备 | |
CN111078091A (zh) | 分屏显示的处理方法、装置及电子设备 | |
CN113645351A (zh) | 应用界面交互方法、电子设备和计算机可读存储介质 | |
CN109857401B (zh) | 电子设备的显示方法、图形用户界面及电子设备 | |
CN111758263A (zh) | 一种柔性屏幕的显示方法及终端 | |
CN112068907A (zh) | 一种界面显示方法和电子设备 | |
CN113986070A (zh) | 一种应用卡片的快速查看方法及电子设备 | |
CN113746961A (zh) | 显示控制方法、电子设备和计算机可读存储介质 | |
CN114498028B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN113688019B (zh) | 响应时长检测方法及装置 | |
CN112637477A (zh) | 一种图像处理方法及电子设备 | |
CN114257502B (zh) | 一种日志上报方法及装置 | |
CN114911400A (zh) | 分享图片的方法和电子设备 | |
CN110609650B (zh) | 一种应用状态切换方法及终端设备 | |
CN112835610A (zh) | 一种构建应用程序资源包的方法、构建装置及终端设备 | |
CN113934475B (zh) | 应用调用的分析方法及电子设备 | |
CN117009005A (zh) | 一种显示方法、汽车和电子设备 | |
CN115729405A (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 |